在 Oracle 數據庫系統中,用戶如果要以特權用戶身份( INTERNAL / SYSDBA / SYSOPER )登錄 Oracle 數據庫可以有兩種身份驗證的方法:即使用與操作系統集成的身份驗證或使用 Oracle 數據庫的密碼文件進行身份驗證。因此,管理好密碼文件,對於控制授權用戶從遠端或本機登錄 Oracle 數據庫系統,執行數據庫管理工作,具有重要的意義。 Oracle 數據庫的密碼文件存放有超級用戶 INTERNAL / SYS 的口令及其他特權用戶的用戶名/口令,它一般存放在 ORACLE_HOME \ DATABASE 目錄下。
一、 密碼文件的創建:
在使用 Oracle Instance Manager 創建一數據庫實例的時侯,在 ORACLE_HOME \ DATABASE 目錄下還自動創建了一個與之對應的密碼文件,文件名為 PWDSID.ORA ,其中 SID 代表相應的 Oracle 數據庫系統標識符。此密碼文件是進行初始數據庫管理工作的基礎。在此之後,管理員也可以根據需要,使用工具 ORAPWD.EXE 手工創建密碼文件,命令格式如下:
C: \ >ORAPWD FILE= < FILENAME > PASSWORD
= < PASSWORD > ENTRIES=< MAX_USERS >
各命令參數的含義為:
FILENAME :密碼文件名;
PASSWORD :設置 INTERNAL / SYS 帳號的口令;
MAX_USERS :密碼文件中可以存放的最大用戶數,對應於允許以 SYSDBA / SYSOPER 權限登錄數據庫的最大用戶數。由於在以後的維護中,若用戶數超出了此限制,則需要重建密碼文件,所以此參數可以根據需要設置得大一些。
有了密碼文件之後,需要設置初始化參數 REMOTE_LOGIN_PASSWORDFILE 來控制密碼文件的使用狀態。
二、 設置初始化參數 REMOTE_LOGIN_PASSWORDFILE :
在 Oracle 數據庫實例的初始化參數文件中,此參數控制著密碼文件的使用及其狀態。它可以有以下幾個選項:
NONE :指示 Oracle 系統不使用密碼文件,特權用戶的登錄通過操作系統進行身份驗證;
EXCLUSIVE :指示只有一個數據庫實例可以使用此密碼文件。只有在此設置下的密碼文件可以包含有除 INTERNAL / SYS 以外的用戶信息,即允許將系統權限 SYSOPER / SYSDBA 授予除 INTERNAL / SYS 以外的其他用戶。
SHARED :指示可有多個數據庫實例可以使用此密碼文件。在此設置下只有 INTERNAL / SYS 帳號能被密碼文件識別,即使文件中存有其他用戶的信息,也不允許他們以 SYSOPER / SYSDBA 的權限登錄。此設置為缺省值。
在 REMOTE_LOGIN_PASSWORDFILE 參數設置為 EXCLUSIVE 、 SHARED 情況下, Oracle 系統搜索密碼文件的次序為:在系統注冊庫中查找 ORA_SID_PWFILE 參數值(它為密碼文件的全路徑名);若未找到,則查找 ORA_PWFILE 參數值;若仍未找到,則使用缺省值 ORACLE_HOME \ DATABASE \ PWDSID.ORA ;其中的 SID 代表相應的 Oracle 數據庫系統標識符。