快速修改Oracle使用者名稱

jolly10發表於2012-08-23
oracle中沒有提供直接修改使用者名稱的方法,即使在11gR2中也沒有提供具體的手段。由於沒有直接修改使用者名稱的方法,因此在Oracle中若要修改使用者名稱,通常是比較周折的。通常修改使用者名稱的一種方法是:重新建立一個新使用者,把原使用者中的資料使用EXP/IMP方法遷移到新使用者中,最後刪除原使用者。如果使用者所包含的資料量非常的巨大,這個過程將相當的耗時,對系統的衝擊也比較大。
有沒有更好的方法來完成這個修改使用者名稱的方法呢?這裡給出一個透過修改Oracle資料庫基表USER$達到修改Oracle使用者名稱的目的。[@more@]

Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> select user#,name,password from user$ where name ='STEWARD_105_160';

no rows selected

SQL> select user#,name,password from user$ where name ='STEWARD_105_160_BAK';

USER# NAME PASSWORD
---------- ------------------------------ ------------------------------
146 STEWARD_105_160_BAK 5461DD198BF10580

SQL> update user$ set name='STEWARD_105_160' where user#=146;

1 row updated.

SQL> commit;

Commit complete.

SQL> select user#,name,password from user$ where user#=146;

USER# NAME PASSWORD
---------- ------------------------------ ------------------------------
146 STEWARD_105_160 5461DD198BF10580

SQL> alter system flush shared_pool;

System altered.

SQL> alter user steward_105_160 identified by steward_105_160;

User altered.

SQL>

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

相關文章