有時候我們可能不知道一個用戶的密碼,可是又須要以這個用戶作一些操做,又不能去修改掉這個用戶的密碼,這個時候,就能夠利用一些小竅門,來完成操做。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: