有時候我們可能不知道一個用戶的密碼,可是又须要以這個用戶作一些操做,又不能去修改掉這個用戶的密碼,這個時候,就能够利用一些小竅門,來完成操做。sql
这个操做,在11g和11g之前的版本是不同的:oracle
具體操做過程以下:ide
C:\Users\chandler>sqlplus /nologspa
SQL*Plus: Release 11.2.0.3.0 Production on 星期一 7月 2 18:04:57 2012code
Copyright (c) 1982, 2011, Oracle. All rights reserved.blog
SQL> connect sys/oracle as sysdbaci
已連接。get
sql > create user cis identified by cis;it
sql >grant connect,resource to cis;io
--以 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: