关于密码的一些问题:
1. 更改用户密码
2. dba想登陆其他用户,但是希望更改密码后还能恢复用户以前的密码
3. 不知道任何用户的密码
注意:在数据字典中存储的密码是被HASH算法加密过的,加密后的值不但跟密码本身有关还跟用户名有关,也就是,如果是不相同的用户名那么即使是完全相同的密码,加密后的HASH值也是不一样的。这样保证了每一个用户的每一个密码都有自己独一无二的HASH值。
1. 更改用户密码
在sys用户下:
alter user scott identified by xin;
2. dba想登陆其他用户,但是希望更改密码后还能恢复用户以前的密码
有时候可能需要作为一个dba登陆以及执行某些任务,但是,即使dba也不能访问其他用户的密码,这些密码以加密方式存储。你只能使用ALTER USER 语句更改用户的密码,但可能又不想永久改变用户的密码:
取出用户密码:
以前可以使用
SQL> select username,password fromdba_users where username='SCOTT';
USERNAME PASSWORD
------------------------------------------------------------
SCOTT F894844C34402B67
但是在oracle11g,这样操作时取不到该密码的hash值
可以利用如下操作取得:
SQL> select name,password from user$ wherename='SCOTT';
NAME PASSWORD
------------------------------------------------------------
SCOTT F894844C34402B67
更改用户密码:
ALTER USER SCOTT IDENTIFIED BY XIN;
恢复用户以前的密码:
ALTER USER SCOTT IDENTIFIED BY values ‘F894844C34402B67’;
3.不知道任何用户的密码
直接以sys用户登陆:
Sqlplus / as sysdba;
然后你可以根据
SQL> select * from dba_users_with_defpwd;
USERNAME
------------------------------
DIP
MDSYS
XS$NULL
SPATIAL_WFS_ADMIN_USR
HR
OLAPSYS
OUTLN
OWBSYS
SPATIAL_CSW_ADMIN_USR
EXFSYS
ORACLE_OCM
SCOTT
MDDATA
ORDPLUGINS
ORDSYS
PM
APPQOSSYS
BI
IX
ORDDATA
USERNAME
------------------------------
XDB
SI_INFORMTN_SCHEMA
WMSYS
23 rows selected
查询仍在使用系统默认密码的用户
常见用户的默认密码:
sys change_on_install
System manager
Scott tiger
如果sys用户密码已经更改,则可以使用如下操作:
alter user sys identified by xin;