天天看點

修改oracle中的使用者名和密碼

修改底層表 user$ 更換使用者名

1、sqlplus /nolog

2、sql> conn sys/zzh_2046@rlzy as sysdba 連接配接到資料庫。通常可以用sys使用者登陸。

3、sql> select * from user$; 找到 name為insur_recover需要修改的使用者的user#。

sql> select user#,name,password  from user$ where name='insur_recover';

     user# name                                type# password

---------- ------------------------------ ---------- ------------------------------

       124 insur_recover                           1 89e995f8b999af00

4、update user$ set name='insur_redo' where user#=124;

   已更新 1 行。

5、sql> commit;送出完成。

6、sql> alter system checkpoint;

   系統已更改。

7、sql> alter user insur_redo identified by "redo";

   此時會提示新使用者不存在。

sql> alter user insur_redo identified by "redo"

*error 位于第 1 行:ora-01918: 使用者'insur_redo'不存在

8、sql> alter system flush shared_pool;

9、sql> alter user insur_redo identified by "redo";

    使用者已更改。

10、測試連接配接

    sql> conn insur_redo/redo@rlzy;

    已連接配接。

11、sql> select * from tab;

    檢視新使用者下是否有原使用者的對象,包括表等。

12、sql> conn /    as sysdba已連接配接。

13、sql> show user     --檢視目前連接配接使用者

    為"sys"

14、sql> shutdown immediate   --關閉資料庫

    資料庫已經關閉。已經解除安裝資料庫。oracle 例程已經關閉。

15、sql> startup              --啟動資料庫

        oracle 例程已經啟動。......資料庫裝載完畢。資料庫已經打開。

16、可以看出沒有再恢複為test

sql> select user#,name,password  from user$ where user#=124;

在操作過程中有可能會導緻使用者被鎖

--檢視被鎖的使用者

        select lock_date,username from dba_users where username='username';

        lock_date為空說明沒有鎖定,非空為鎖定。

-解鎖方法

        alter user user_name account unlock;