我們的Oracle管理工作中經常涉及到更改Oracle用戶屬性、密碼之類的常用操作;但在某些應用場景下,會遇到Oracle用戶名更改的需求,如何解決?下面通過四個步驟實現Oracle用戶名的修改。
一、查詢更改Oracle用戶名
- SQL> select user#,name,passWord from user$ where name ='TICKETS';
- USER# NAME PASSWord
- ---------- ------------------------------ ------------------------------
- 78 TICKETS 21EDA78F89D6FACD
二、更改用戶名
- SQL> update user$ set name='TICKETS_BAK' where user#=78;
- 1 row updated.
- SQL> commit;
- Commit complete.
三、創建同樣的Oracle用戶名
- SQL> create user tickets identifIEd by "123456"
- 2 default tablespace yytickets
- 3 temporary tablespace temp;
- create user tickets identifIEd by "123456"
- *
- ERROR at line 1:
- ORA-01920: user name 'TICKETS' conflicts with another user or role name
這時系統會提示“用戶名沖突”,運行下面的SQL語句
- SQL> alter system checkpoint; ----強制寫入數據文件
- System altered.
- SQL> alter system flush shared_pool; ----清楚緩存數據字典信息,
----強制Oracle讀實際數據(即更改後的數據)- System altered.
四、創建相同的用戶名
- SQL> create user tickets identifIEd by "123456"
- 2 default tablespace yytickets
- 3 temporary tablespace temp;
- User created.
- SQL> grant connect,resource to tickets;
- Grant succeeded.
- SQL> commit;
- Commit complete.
這樣基本完成Oracle用戶名的查找、更改、替換、復制等操作,需要注意的是用戶名沖突的排查和解決,以防發生後患。