使用“基表修改法”快速修改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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- oracle11g修改使用者名稱Oracle
- oracle中的某一個使用者名稱修改Oracle
- github修改使用者名稱Github
- 修改 Ubuntu 系統使用者名稱和登入名Ubuntu
- 公司網站使用者名稱密碼修改?網站密碼
- Git修改和配置使用者名稱和郵箱Git
- 修改了github使用者名稱後,部落格的更改Github
- PowerShell快速修改多個檔案的名稱
- 修改git全部已提交的使用者名稱和郵箱Git
- Git 檢視和修改使用者名稱與郵箱Git
- win10修改使用者名稱資料夾方法 win10怎麼改使用者資料夾名稱Win10
- win10家庭版更改使用者名稱怎麼改_如何修改win10使用者名稱Win10
- 使用mmv命令批次修改檔名稱
- 網站後臺的使用者名稱修改?dw怎樣修改網站模板?網站
- 為何不能在Oracle表名稱中使用特殊字元?RFOracle字元
- win10怎麼更改使用者名稱資料夾_win10如何修改suers使用者名稱資料夾Win10
- python 使用者註冊使用者名稱Python
- Git修改檔名稱Git
- WordPress使用者名稱能改幾次?附更改使用者名稱4種方法
- Oracle19c:一個很少有人知道,如今可以不用再知道的功能——修改使用者名稱Oracle
- 使用NID修改Oracle資料庫名Oracle資料庫
- 檢查使用者名稱是否使用介面
- Vue檢查使用者名稱是否使用Vue
- win10怎麼改使用者名稱_win10如何更改使用者名稱Win10
- Win10系統怎麼修改使用者名稱【圖文教程】Win10
- iOS使用Shell指令碼批量修改類名稱iOS指令碼
- 使用Oracle自帶profile以及函式簡單設定Oracle使用者名稱密碼規則Oracle函式密碼
- Git使用者名稱郵箱配置Git
- mysql之查詢使用者名稱MySql
- win10如何修改印表機名稱_win10怎麼改印表機顯示的使用者名稱Win10
- sqlserver修改例項名稱SQLServer
- ubuntu修改主機名稱Ubuntu
- 本地oracle資料庫忘記使用者名稱密碼解決方案Oracle資料庫密碼
- Fedora網路介面名稱如何修改?Fedora修改網路介面名稱的方法
- git配置使用者名稱和郵箱 git設定使用者名稱郵箱有什麼用Git
- 在Linux中使用mmv命令批量修改檔名稱Linux
- win10 smb使用者名稱密碼錯誤怎麼解決_win10電腦smb使用者名稱密碼錯誤修復方法Win10密碼
- 如何將Windows作業系統使用者名稱的中文名稱修改為英文名稱【親測有效】Windows作業系統
- git使用者名稱和郵箱配置Git