Oracle密碼文件的實(shí)際操作方案介紹
我們大家都知道在Oracle數(shù)據(jù)庫的實(shí)際應(yīng)用系統(tǒng)中,如果某些用戶想要以特權(quán)用戶的身份來登錄Oracle 數(shù)據(jù)庫,其可以用兩種身份驗(yàn)證的實(shí)際操作方法即,使用與操作系統(tǒng)集成的身份驗(yàn)證或使用Oracle數(shù)據(jù)庫的Oracle密碼文件進(jìn)行身份驗(yàn)證。
因此,管理好密碼文件,對于控制授權(quán)用戶從遠(yuǎn)端或本機(jī)登錄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ù)庫實(shí)例的時侯,在ORACLE_HOME\DATABASE目錄下還自動創(chuàng)建了一個與之對應(yīng)的Oracle密碼文件,文件名為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:Oracle密碼文件中可以存放的最大用戶數(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ù)文件中,此參數(shù)控制著密碼文件的使用及其狀態(tài)。它可以有以下幾個選項(xiàng): NONE:指示Oracle系統(tǒng)不使用密碼文件,特權(quán)用戶的登錄通過操作系統(tǒng)進(jìn)行身份驗(yàn)證;EXCLUSIVE:指示只有一個數(shù)據(jù)庫實(shí)例可以使用此密碼文件。
只有在此設(shè)置下的密碼文件可以包含有除INTERNAL/SYS以外的用戶信息,即允許將系統(tǒng)權(quán)限SYSOPER/SYSDBA授予除INTERNAL/SYS以外的其他用戶。 SHARED:指示可有多個數(shù)據(jù)庫實(shí)例可以使用此密碼文件。在此設(shè)置下只有INTERNAL/SYS帳號能被密碼文件識別,即使文件中存 有其他用戶的信息,也不允許他們以SYSOPER/SYSDBA的權(quán)限登錄。此設(shè)置為缺省值。
在REMOTE_LOGIN_PASSWORDFILE參數(shù)設(shè)置為EXCLUSIVE、SHARED情況下,Oracle系統(tǒng)搜索Oracle密碼文件的次序?yàn)椋涸谙到y(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)端或本機(jī)登錄到Oracle數(shù)據(jù)庫系統(tǒng),執(zhí)行數(shù)據(jù)庫管理工作;這些用戶名必須存在于密碼文件中,系統(tǒng)才能識別他們。由于不管是在創(chuàng)建數(shù)據(jù)庫實(shí)例時自動創(chuàng)建的密碼文件,還是使用工具ORAPWD.EXE手工創(chuàng)建的密碼文件,都只包含INTERNAL/SYS用戶的信息;為此,在實(shí)際操作中,可能需要向密碼文件添加或刪除其他用戶帳號。
由于僅被授予SYSOPER/SYSDBA系統(tǒng)權(quán)限的用戶才存在于Oracle密碼文件中,所以當(dāng)向某一用戶授予或收回SYSOPER/SYSDBA系統(tǒng)權(quán)限時,他們的帳號也將相應(yīng)地被加入到密碼文件或從密碼文件中刪除。由此,向密碼文件中增加或刪除某一用戶,實(shí)際上也就是對某一用戶授予或收回SYSOPER/SYSDBA系統(tǒng)權(quán)限。
要進(jìn)行此項(xiàng)授權(quán)操作,需使用SYSDBA權(quán)限(或INTERNAL帳號)連入數(shù)據(jù)庫,且初始化參數(shù)REMOTE_LOGIN_PASSWORDFILE的設(shè)置必須為EXCLUSIVE。具體操作步驟如下:創(chuàng)建相應(yīng)的Oracle密碼文件;設(shè)置初始化參數(shù)REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE;
使用SYSDBA權(quán)限登錄: CONNECT SYS/internal_user_passsword AS SYSDBA; 啟動數(shù)據(jù)庫實(shí)例并打開數(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)了;
【編輯推薦】
- 連接Oracle數(shù)據(jù)庫的兩種基本方式簡介
- Oracle case的實(shí)際用法總結(jié)
- Oracle 函數(shù)用法之decode解剖
- Oracle EXPLAIN PLAN的實(shí)際應(yīng)用經(jīng)驗(yàn)總結(jié)
- Oracle表空間的設(shè)置問題的描述