不知道密碼狀況下建立用戶 (轉)

不少數據庫遷移要求使用exp,或者須要使用exp,好比我此次爲用戶作的數據庫升級,從oracle9i升級到oracle11g。

咱們須要在新服務器上建立數據庫,建立表空間,建立用戶,賦予用戶權限,而後再執行imp命令導入數據。
建立用戶以前咱們能夠經過select username from dab_users來獲取須要建立的用戶名,但是如何得到該用戶的密碼呢?
在建立語句create user <username> identified by <password>中,password怎麼辦?咱們都知道oracle的用戶密碼是密文,沒法直接使用。
在這裏咱們採用一個小方法來搞定這件事,請看下面的實驗:

1,建立一個測試用戶
SYS@PRACTICE >create user Lily identified by panda;

2,爲用戶Lily受權
SYS@PRACTICE >grant connect,resource to Lily;

3,查看用戶Lily的密文密碼
SYS@PRACTICE >col name for a20
SYS@PRACTICE >col password for a30
SYS@PRACTICE >select user#,name,password from user$ where name='LILY';

     USER# NAME                 PASSWORD
---------- -------------------- ------------------------------
        91 LILY                 1EE128BE3115C31B   <==密碼panda加密後的模樣



4,測試新用戶登陸
SYS@PRACTICE >conn Lily/panda
Connected.


5,在新數據庫中建立用戶Lily,密碼和原數據庫一致。
grant connect, resource to Lily identified by values '1EE128BE3115C31B';

6,在新系統上測試登陸
conn Lily/panda
Connected.

到此利用密文密碼建立用戶成功。

有一點須要注意的是這個密文密碼是和用戶相關聯的,兩個不一樣的用戶即便密碼相同,它們的密文密碼並不相同。
好比:
SYS@PRACTICE >create user u1 identified by panda;

User created.

SYS@PRACTICE >create user u2 identified by panda;

User created.

SYS@PRACTICE >col name for a20
SYS@PRACTICE >col password for a30
SYS@PRACTICE >select user#,name,password from user$ where name in ('U1','U2');

     USER# NAME                 PASSWORD
---------- -------------------- ------------------------------
       149 U1                   3F7B709FE0BD3E6A
       150 U2                   0EB66C29105D811E數據庫

相關文章
相關標籤/搜索