明輝手游網(wǎng)中心:是一個免費提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺!

Oracle密碼文件的使用與維護(hù)

[摘要]概要:Oracle關(guān)系數(shù)據(jù)庫系統(tǒng)以其卓越的性能獲得了廣泛的應(yīng)用,而保證數(shù)據(jù)庫的安全性是數(shù)據(jù)庫管理工作的重要內(nèi)容。本文是筆者在總結(jié)Oracle數(shù)據(jù)庫安全管理工作的基礎(chǔ)上,對Oracle數(shù)據(jù)庫系統(tǒng)密碼文...

  概要:Oracle關(guān)系數(shù)據(jù)庫系統(tǒng)以其卓越的性能獲得了廣泛的應(yīng)用,而保證數(shù)據(jù)庫的安全性是數(shù)據(jù)庫管理工作的重要內(nèi)容。本文是筆者在總結(jié)Oracle數(shù)據(jù)庫安全管理工作的基礎(chǔ)上,對Oracle數(shù)據(jù)庫系統(tǒng)密碼文件的創(chuàng)建、使用和維護(hù)作了詳細(xì)的介紹,供大家參考。 

  在Oracle數(shù)據(jù)庫系統(tǒng)中,用戶如果要以特權(quán)用戶身份(INTERNAL/SYSDBA/SYSOPER)登錄Oracle數(shù)據(jù)庫可以有兩種身份驗證的方法:即使用與操作系統(tǒng)集成的身份驗證或使用Oracle數(shù)據(jù)庫的密碼文件進(jìn)行身份驗證。因此,管理好密碼文件,對于控制授權(quán)用戶從遠(yuǎn)端或本機登錄Oracle數(shù)據(jù)庫系統(tǒng),執(zhí)行數(shù)據(jù)庫管理工作,具有重要的意義。 

  Oracle數(shù)據(jù)庫的密碼文件存放有超級用戶INTERNAL/SYS的口令及其他特權(quán)用戶的用戶名/口令,它一般存放在ORACLE_HOME\DATABASE目錄下。 

  一、密碼文件的創(chuàng)建:

  在使用Oracle Instance Manager創(chuàng)建一數(shù)據(jù)庫實例的時侯,在ORACLE_HOME\DATABASE目錄下還自動創(chuàng)建了一個與之對應(yīng)的密碼文件,文件名為PWDSID.ORA,其中SID代表相應(yīng)的Oracle數(shù)據(jù)庫系統(tǒng)標(biāo)識符。此密碼文件是進(jìn)行初始數(shù)據(jù)庫管理工作的基礎(chǔ)。在此之后,管理員也可以根據(jù)需要,使用工具ORAPWD.EXE手工創(chuàng)建密碼文件,命令格式如下:
 
  C:\ >ORAPWD FILE=< FILENAME > PASSWORD
  =< PASSWORD > ENTRIES=< MAX_USERS >

  各命令參數(shù)的含義為: 
  FILENAME:密碼文件名; 

  PASSWORD:設(shè)置INTERNAL/SYS帳號的口令; 

  MAX_USERS:密碼文件中可以存放的最大用戶數(shù),對應(yīng)于允許以SYSDBA/SYSOPER權(quán)限登錄數(shù)據(jù)庫的最大用戶數(shù)。由于在以后的維護(hù)中,若用戶數(shù)超出了此限制,則需要重建密碼文件,所以此參數(shù)可以根據(jù)需要設(shè)置得大一些。 

  有了密碼文件之后,需要設(shè)置初始化參數(shù)REMOTE_LOGIN_PASSWORDFILE來控制密碼文件的使用狀態(tài)。 

  二、設(shè)置初始化參數(shù)REMOTE_LOGIN_PASSWORDFILE:


  在Oracle數(shù)據(jù)庫實例的初始化參數(shù)文件中,此參數(shù)控制著密碼文件的使用及其狀態(tài)。它可以有以下幾個選項:

  NONE:指示Oracle系統(tǒng)不使用密碼文件,特權(quán)用戶的登錄通過操作系統(tǒng)進(jìn)行身份驗證; 

  EXCLUSIVE:指示只有一個數(shù)據(jù)庫實例可以使用此密碼文件。只有在此設(shè)置下的密碼文件可以包含有除INTERNAL/SYS以外的用戶信息,即允許將系統(tǒng)權(quán)限SYSOPER/SYSDBA授予除INTERNAL/SYS以外的其他用戶。 

  SHARED:指示可有多個數(shù)據(jù)庫實例可以使用此密碼文件。在此設(shè)置下只有INTERNAL/SYS帳號能被密碼文件識別,即使文件中存有其他用戶的信息,也不允許他們以SYSOPER/SYSDBA的權(quán)限登錄。此設(shè)置為缺省值。

  在REMOTE_LOGIN_PASSWORDFILE參數(shù)設(shè)置為EXCLUSIVE、SHARED情況下,Oracle系統(tǒng)搜索密碼文件的次序為:在系統(tǒng)注冊庫中查找ORA_SID_PWFILE參數(shù)值(它為密碼文件的全路徑名);若未找到,則查找ORA_PWFILE參數(shù)值;若仍未找到,則使用缺省值ORACLE_HOME\DATABASE\PWDSID.ORA;其中的SID代表相應(yīng)的Oracle數(shù)據(jù)庫系統(tǒng)標(biāo)識符。 

  三、向密碼文件中增加、刪除用戶:

  當(dāng)初始化參數(shù)REMOTE_LOGIN_PASSWORDFILE設(shè)置為EXCLUSIVE時,系統(tǒng)允許除INTERNAL/SYS以外的其他用戶以管理員身份從遠(yuǎn)端或本機登錄到Oracle數(shù)據(jù)庫系統(tǒng),執(zhí)行數(shù)據(jù)庫管理工作;這些用戶名必須存在于密碼文件中,系統(tǒng)才能識別他們。由于不管是在創(chuàng)建數(shù)據(jù)庫實例時自動創(chuàng)建的密碼文件,還是使用工具ORAPWD.EXE手工創(chuàng)建的密碼文件,都只包含INTERNAL/SYS用戶的信息;為此,在實際操作中,可能需要向密碼文件添加或刪除其他用戶帳號。 

  由于僅被授予SYSOPER/SYSDBA系統(tǒng)權(quán)限的用戶才存在于密碼文件中,所以當(dāng)向某一用戶授予或收回SYSOPER/SYSDBA系統(tǒng)權(quán)限時,他們的帳號也將相應(yīng)地被加入到密碼文件或從密碼文件中刪除。由此,向密碼文件中增加或刪除某一用戶,實際上也就是對某一用戶授予或收回SYSOPER/SYSDBA系統(tǒng)權(quán)限。 

  要進(jìn)行此項授權(quán)操作,需使用SYSDBA權(quán)限(或INTERNAL帳號)連入數(shù)據(jù)庫,且初始化參數(shù)REMOTE_LOGIN_PASSWORDFILE的設(shè)置必須為EXCLUSIVE。具體操作步驟如下: 

  創(chuàng)建相應(yīng)的密碼文件; 

  設(shè)置初始化參數(shù)REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE; 

  使用SYSDBA權(quán)限登錄:
 
  CONNECT SYS/internal_user_passsword AS SYSDBA; 

  啟動數(shù)據(jù)庫實例并打開數(shù)據(jù)庫; 

  創(chuàng)建相應(yīng)用戶帳號,對其授權(quán)(包括SYSOPER和SYSDBA): 
  授予權(quán)限:GRANT SYSDBA TO user_name; 
  收回權(quán)限:REVOKE SYSDBA FROM user_name; 

  現(xiàn)在這些用戶可以以管理員身份登錄數(shù)據(jù)庫系統(tǒng)了; 

  四、使用密碼文件登錄:
 
  有了密碼文件后,用戶就可以使用密碼文件以SYSOPER/SYSDBA權(quán)限登錄Oracle數(shù)據(jù)庫實例了,注意初始化參數(shù)REMOTE_LOGIN_PASSWORDFILE應(yīng)設(shè)置為EXCLUSIVE或SHARED。任何用戶以SYSOPER/SYSDBA的權(quán)限登錄后,將位于SYS用戶的Schema之下,以下為兩個登錄的例子:
 
  1. 以管理員身份登錄: 

 

  假設(shè)用戶scott已被授予SYSDBA權(quán)限,則他可以使用以下命令登錄: 

  CONNECT scott/tiger AS SYSDBA 

  2. 以INTERNAL身份登錄: 

  CONNECT INTERNAL/INTERNAL_PASSWORD 

  五、密碼文件的維護(hù):

  1. 查看密碼文件中的成員:
 
  可以通過查詢視圖V$PWFILE_USERS來獲取擁有SYSOPER/SYSDBA系統(tǒng)權(quán)限的用戶的信息,表中SYSOPER/SYSDBA列的取值TRUE/FALSE表示此用戶是否擁有相應(yīng)的權(quán)限。這些用戶也就是相應(yīng)地存在于密碼文件中的成員。 

  2. 擴展密碼文件的用戶數(shù)量: 

  當(dāng)向密碼文件添加的帳號數(shù)目超過創(chuàng)建密碼文件時所定的限制(即ORAPWD.EXE工具的MAX_USERS參數(shù))時,為擴展密碼文件的用戶數(shù)限制,需重建密碼文件,具體步驟如下: 

  a) 查詢視圖V$PWFILE_USERS,記錄下?lián)碛蠸YSOPER/SYSDBA系統(tǒng)權(quán)限的用戶信息; 

  b) 關(guān)閉數(shù)據(jù)庫; 

  c) 刪除密碼文件; 

  d) 用ORAPWD.EXE新建一密碼文件; 

  e) 將步驟a中獲取的用戶添加到密碼文件中。 

  3. 修改密碼文件的狀態(tài): 

  密碼文件的狀態(tài)信息存放于此文件中,當(dāng)它被創(chuàng)建時,它的缺省狀態(tài)為SHARED。可以通過改變初始化參數(shù)REMOTE_LOGIN_PASSWORDFILE的設(shè)置改變密碼文件的狀態(tài)。當(dāng)啟動數(shù)據(jù)庫事例時,Oracle系統(tǒng)從初始化參數(shù)文件中讀取REMOTE_LOGIN_PASSWORDFILE參數(shù)的設(shè)置;當(dāng)加載數(shù)據(jù)庫時,系統(tǒng)將此參數(shù)與口令文件的狀態(tài)進(jìn)行比較,如果不同,則更新密碼文件的狀態(tài)。若計劃允許從多臺客戶機上啟動數(shù)據(jù)庫實例,由于各客戶機上必須有初始化參數(shù)文件,所以應(yīng)確保各客戶機上的初始化參數(shù)文件的一致性,以避免意外地改變了密碼文件的狀態(tài),造成數(shù)據(jù)庫登陸的失敗。 

  4. 修改密碼文件的存儲位置: 

  密碼文件的存放位置可以根據(jù)需要進(jìn)行移動,但作此修改后,應(yīng)相應(yīng)修改系統(tǒng)注冊庫有關(guān)指向密碼文件存放位置的參數(shù)或環(huán)境變量的設(shè)置。 

  5. 刪除密碼文件: 

  在刪除密碼文件前,應(yīng)確保當(dāng)前運行的各數(shù)據(jù)庫實例的初始化參數(shù)REMOTE_LOGIN_PASSWORDFILE皆設(shè)置為NONE。在刪除密碼文件后,若想要以管理員身份連入數(shù)據(jù)庫的話,則必須使用操作系統(tǒng)驗證的方法進(jìn)行登錄。

關(guān)鍵詞標(biāo)簽:維護(hù),使用,文件,密碼,

學(xué)習(xí)教程快速掌握從入門到精通的SQL知識。