RAC和Data Guard環境中修改使用者密碼

kuqlan發表於2011-09-20

RACData Guard中修改使用者帳號時,按照是否會修改口令檔案($ORACLE_HOME/dbs/orapw$ORACLE_SID分兩種情況:

1, 普通使用者

普通使用者在V$PWFILE_USERS中沒有記錄, 資訊不會儲存在口令檔案中,

所以修改口令時,只會修改資料字典資訊,而資料字典存在system表空間中,屬性資料庫的資料檔案,datafileRAC中是共享的.

所以,在任何節點執行修改動作都可以, 可以立即生效

[@more@]

例如修改system使用者密碼,則具體步驟如下:

  • 檢視V$PWFILE_USERS裡有沒有我們要修改的使用者名稱,如果沒有說明該使用者屬於普通使用者,如下查詢結果顯示system使用者不在該列表上,因此可以按普通使用者方式來修改其密碼;

SQL> select * from V$PWFILE_USERS;

USERNAME SYSDBA SYSOPER

------------------------------ ------ -------

SYS TRUE TRUE

ABC TRUE FALSE

SQL>

  • 透過alter user 語句修改使用者密碼:

SQL> alter user system identified by abc@123;

  • 測試修改後的結果(假設兩個節點的RAC環境的servicerac,例項一為rac1,例項二為rac2):

[rac1]@rac-db1[/export/home/oracle]$sqlplus system/abc@123@rac1

[rac2]@rac-db2[/export/home/oracle]$sqlplus system/abc@123@rac2

[rac1]@rac-db2[/export/home/oracle]$sqlplus system/abc@123@rac

[rac2]@rac-db2[/export/home/oracle]$sqlplus system/abc@123@rac

  • 如果系統有Data Guard環境,則在備庫上也要進行測試:

[rac]@dg-db[/export/home/oracle]$sqlplus system/abc@123@rac

2, 具備sysdbasysoper系統許可權的使用者

我們在建立資料庫之前,會要求首先為每個節點建立一個口令檔案,並且口令檔案中的記錄項要一致(帳號名,屬性,密碼),預設是指定sys帳號.

在建立資料庫生成V$PWFILE_USERS,會讀取口令檔案,填充到字典中

這個機制說明一個情況: 當需要修改具有sysdba/sysoper許可權的使用者的密碼時,由於需要同時修改資料字典和本地的口令檔案,

而口令檔案不是共享的,而是每個節點都有一個, 所以sql需要在每個節點都執行一次才能"同步"--修改所有節點的口令檔案,使密碼保持一致。具體修改過程請參考本站連線:http://kuqlan.itpub.net/post/38575/522237

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

相關文章