使用“基表修改法”快速修改Oracle使用者名稱(z)
Oracle中沒有提供直接修改使用者名稱的方法,即使在11gR2中也沒有提供具體的手段。由於沒有直接修改使用者名稱的方法,因此在Oracle中若要修改使用者名稱,通常是比較周折的。通常修改使用者名稱的一種方法是:重新建立一個新使用者,把原使用者中的資料使用EXP/IMP方法遷移到新使用者中,最後刪除原使用者。如果使用者所包含的資料量非常的巨大,這個過程將相當的耗時,對系統的衝擊也比較大。
有沒有更好的方法來完成這個修改使用者名稱的方法呢?這裡給出一個透過修改Oracle資料庫基表USER$達到修改Oracle使用者名稱的目的。
1.在基表user$中檢視待修改使用者TEST的基本資訊
SQL> conn /as sysdba
Connected.
SQL> select user#,name,password from user$ where name ='TEST';
USER# NAME PASSWORD
---------- ------------------------------ ------------------------------
91 TEST 7A0F2B316C212D67
注意:裡面存放的使用者都是大寫!
2.直接使用update語句將USER#列修改為新的使用者名稱SECOOLER
1)修改
SQL> update user$ set name='SECOOLER' where user#=91;
1 row updated.
2)提交
SQL> commit;
Commit complete.
3)確認修改完畢
SQL> select user#,name,password from user$ where USER# = 91;
USER# NAME PASSWORD
---------- ------------------------------ ------------------------------
91 SECOOLER 7A0F2B316C212D67
3.為使新使用者的密碼生效,我們嘗試重置新使用者名稱SECOOLER的密碼
SQL> alter user secooler identified by secooler;
User altered.
4. 測試連線
SQL> conn secooler/secooler
Connected.
說明:以上是在oracle11g 11.1.0.6.0 版本測試成功。
以下是在oracle10g的版本上執行。
4.手工執行檢查點操作,將Database Buffer Cache中的資料強制寫出到外存,這一步驟不是關鍵。
SQL> alter system checkpoint;
System altered.
5.關鍵步驟在此--強制重新整理Shared Pool!因為Oracle的資料字典資訊是快取在Shared Pool的Dictionary Cache中的。
SQL> alter system flush shared_pool;
System altered.
6.開始修改SECOOLER的密碼,成功!整個透過基表修改方法修改使用者名稱的操作全部完成。
1)修改密碼,成功。
SQL> alter user secooler identified by secooler;
User altered.
2)確認密碼確實發生了變化
SQL> select user#,name,password from user$ where USER# = 65;
USER# NAME PASSWORD
---------- ------------------------------ ------------------------------
91 SECOOLER 7A0F2B316C212D67
3)測試新使用者的可用性
SQL> conn secooler/secooler
Connected.
SQL> show user
USER is "SECOOLER"
7.小結
在修改完基表後,更徹底的使其生效的方法是重新啟動資料庫。不過無論是使用“flush shared_pool”還是“startup force;”對於執行要求比較高的生產系統來說都會面臨資料庫短暫無法提供服務的情況。因此,在使用這種方法之前同樣需要做好計劃,預見到影響。
注意:不建議使用這種方法來修改使用者名稱,早期規劃並嚴格按照規範執行避免使用者名稱的隨意修改才是正途。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/628922/viewspace-623141/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【USER】使用“基表修改法”快速修改Oracle使用者名稱Oracle
- 快速修改Oracle使用者名稱Oracle
- 修改oracle使用者名稱,表空間名字,Oracle
- oracle11g修改使用者名稱Oracle
- github修改使用者名稱Github
- oracle中的某一個使用者名稱修改Oracle
- 修改oracle中的使用者名稱和密碼Oracle密碼
- ORACLE 11G R2 修改"使用者名稱"Oracle
- Oracle 11g修改資料庫使用者名稱Oracle資料庫
- Oracle 11g支援修改資料庫使用者名稱Oracle資料庫
- 修改 linux&unix 使用者名稱Linux
- oracle更改使用者名稱Oracle
- 修改 Ubuntu 系統使用者名稱和登入名Ubuntu
- Git修改提交的使用者名稱和EmailGitAI
- Git修改和配置使用者名稱和郵箱Git
- 【實戰】使用“基表修改法”恢復被“set unused”方式誤刪除的列
- 修改了github使用者名稱後,部落格的更改Github
- wordpress修改繫結的mysql使用者名稱密碼MySql密碼
- win10家庭版更改使用者名稱怎麼改_如何修改win10使用者名稱Win10
- 【實戰】使用“基表修改法”恢復被“set unused”方式誤刪除的列(續)
- 修改git全部已提交的使用者名稱和郵箱Git
- Git 檢視和修改使用者名稱與郵箱Git
- win10修改使用者名稱資料夾方法 win10怎麼改使用者資料夾名稱Win10
- 使用mmv命令批次修改檔名稱
- Oracle EM Express要求使用者名稱和密碼OracleExpress密碼
- Oracle11g 建立使用者名稱、授權Oracle
- 表單使用者名稱和密碼記住效果密碼
- win10怎麼更改使用者名稱資料夾_win10如何修改suers使用者名稱資料夾Win10
- Oracle---使用者重新命名、建立同樣的使用者名稱Oracle
- Git修改檔名稱Git
- InternetExplorer表單及使用者名稱密碼提交密碼
- python 使用者註冊使用者名稱Python
- 使用名稱空間:基礎
- LInux下設定賬號有效時間 以及 修改使用者名稱(同時修改使用者組名和家目錄)Linux
- Oracle批次修改使用者表table的表空間Oracle
- 檢查使用者名稱是否使用介面
- Vue檢查使用者名稱是否使用Vue
- 為何不能在Oracle表名稱中使用特殊字元?RFOracle字元