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

eric0435發表於2012-11-27
修改底層表 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;

     USER# NAME                                TYPE# PASSWORD
---------- ------------------------------ ---------- ------------------------------
       124 INSUR_RECOVER                           1 89E995F8B999AF00


在操作過程中有可能會導致使用者被鎖
--檢視被鎖的使用者
        select LOCK_DATE,username from dba_users where username='USERNAME';
        LOCK_DATE為空說明沒有鎖定,非空為鎖定。
-解鎖方法
        ALTER USER USER_NAME ACCOUNT UNLOCK;

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26015009/viewspace-750036/,如需轉載,請註明出處,否則將追究法律責任。

相關文章