oracle 11g dba使用者祕密修改其他使用者密碼
有時候我們可能不知道一個使用者的密碼,但是又需要以這個使用者做一些操作,又不能去修改掉這個使用者的密碼,這個時候,就可以利用一些小竅門,來完成操作。
這個操作,在11g和11g以前的版本是不一樣的:
具體操作過程如下:
C:\Users\chandler>sqlplus /nolog
SQL*Plus: Release 11.2.0.3.0 Production on 星期一 7月 2 18:04:57 2012
Copyright (c) 1982, 2011, Oracle. All rights reserved.
SQL> connect sys/oracle as sysdba
已連線。
sql > create user cis identified by cis;
sql >grant connect,resource to cis;
--以 cis使用者登陸,建立一張表
sql >conn cis/cis
sql >create table test (code varchar2(20));
--以sys登陸,檢視 cis使用者的密碼
sql>conn / as sysdba
sql>
SQL> select username,password from dba_users where username='CIS';
USERNAME PASSWORD
CIS
我們看到,以前可以在dba_users可以看到的密碼,現在在dba_users的password為空了。
我們可以在user$的password中看到:
SQL> select name,password from USER$ where name='CIS';
NAME PASSWORD
CIS 7653EBAF048F0A10
修改cis密碼為其他密碼,比如cis123
SQL> connect / as sysdba
SQL> alter user cis identified by cis123;
使用者已更改。
SQL> select name,password from USER$ where name='CIS';
NAME PASSWORD
CIS 7C6E878D447406A4
SQL> connect cis/cis123
已連線。
然後此時可以做想要做的任何操作了
比如插入一條記錄
insert into test values('001');
commit;
--之後,我們修改cis使用者密碼為以前的密碼
SQL> connect / as sysdba
已連線。
修改使用者system密碼為以前的值
SQL> alter user cis identified by values '7653EBAF048F0A10';
使用者已更改。
SQL> connect cis/cis
已連線。
表明已經修改回以前的密碼
如果再以新密碼登陸,就會包錯了
SQL> connect cis/cis123
ERROR: