新博客http://www.cnblogs.com/zhjh256 欢迎访问
分类: Oracle
2008-01-06 21:41:35
如果需要以其他用户的身份登陆,而又不更改它们的密码,可以使用这种简单的方式,但是需要类DBA的密码:
SQL> select username, password from dba_users where username = 'SCOTT';
USERNAME PASSWORD
------------------------------ ------------------------------
SCOTT F894844C34402B67
知道了16进制哈希值后,可以使用以下语句更改密码:
SQL> alter user scott identified by newpassword;
User altered.
SQL> connect scott/newpassword
Connected.
SQL> select count(*) from dept;
COUNT(*)
----------
4
登陆成功后,改回密码:
SQL> connect / as sysdba
Connected.
SQL> alter user scott identified by values 'F894844C34402B67';
User altered.
SQL> connect scott/tiger
Connected.
此时用户就可以重新使用tiger密码登陆。
关键是alter user X identified by values,这可以极大的方便了DBA在某些情况下的工作。需要注意的是,仅仅在DBA_USERS中包含了PASSWORD列,USER_USERS和ALL_USERS都没有这个列。
但是如果使用配置文件设置了PASSWORD_REUSE_MAX为UNLIMITED以外的值,那么将无法将密码设置回原来的值。