Oracle密碼文件的創(chuàng)建,、使用和維護
|
作者:無從考證 來源:轉載 發(fā)布時間:2005-11-22 16:32:18 發(fā)布人:admin
|
概要:Oracle關系數據庫系統(tǒng)以其卓越的性能獲得了廣泛的應用,,而保證數據庫的安全性 是數據庫管理工作的重要內容。本文是筆者在總結Oracle數據庫安全管理工作的基礎上,,對Oracle數據庫系統(tǒng)密碼文件的創(chuàng)建,、使用和維護作了詳細的介紹,供大家參考,。
在Oracle數據庫系統(tǒng)中,,用戶如果要以特權用戶身份(INTERNAL/SYSDBA/SYSOPER)登錄Oracle數據庫可以有兩種身份驗證的方法:即使用與操作系統(tǒng)集成的身份驗證或使用Oracle數據庫的密碼文件進行身份驗證。因此,,管理好密碼文件,,對于控制授權用戶從遠端或本機登錄Oracle數據庫系統(tǒng),執(zhí)行數據庫管理工作,,具有重要的意義,。
Oracle數據庫的密碼文件存放有超級用戶INTERNAL/SYS的口令及其他特權用戶的用戶名/口令,它一般存放在ORACLE_HOME\DATABASE目錄下,。
一,、密碼文件的創(chuàng)建:
在使用Oracle Instance Manager創(chuàng)建一數據庫實例的時侯,在ORACLE_HOME\DATABASE目錄下還自動創(chuàng)建了一個與之對應的密碼文件,,文件名為PWDSID.ORA,,其中SID代表相應的Oracle數據庫系統(tǒng)標識符。此密碼文件是進行初始數據庫管理工作的基礎,。在此之后,,管理員也可以根據需要,使用工具ORAPWD.EXE手工創(chuàng)建密碼文件,,命令格式如下:
C:\ >ORAPWD FILE=< FILENAME > PASSWORD
=< PASSWORD > ENTRIES=< MAX_USERS >
各命令參數的含義為:
FILENAME:密碼文件名,;
PASSWORD:設置INTERNAL/SYS賬號的口令,;
MAX_USERS:密碼文件中可以存放的最大用戶數,對應于允許以SYSDBA/SYSOPER權限登錄數據庫的最大用戶數,。由于在以后的維護中,,若用戶數超出了此限制,則需要重建密碼文件,,所以此參數可以根據需要設置得大一些,。
有了密碼文件之后,需要設置初始化參數REMOTE_LOGIN_PASSWORDFILE來控制密碼文件的使用狀態(tài),。
二,、設置初始化參數REMOTE_LOGIN_PASSWORDFILE:
在Oracle數據庫實例的初始化參數文件中,此參數控制著密碼文件的使用及其狀態(tài),。它可以有以下幾個選項:
NONE:指示Oracle系統(tǒng)不使用密碼文件,,特權用戶的登錄通過操作系統(tǒng)進行身份驗證;
EXCLUSIVE:指示只有一個數據庫實例可以使用此密碼文件,。只有在此設置下的密碼文件可以包含有除INTERNAL/SYS以外的用戶信息,,即允許將系統(tǒng)權限SYSOPER/SYSDBA授予除INTERNAL/SYS以外的其他用戶。
SHARED:指示可有多個數據庫實例可以使用此密碼文件,。在此設置下只有INTERNAL/SYS賬號能被密碼文件識別,,即使文件中存有其他用戶的信息,也不允許他們以SYSOPER/SYSDBA的權限登錄,。此設置為缺省值,。
在REMOTE_LOGIN_PASSWORDFILE參數設置為EXCLUSIVE、SHARED情況下,,Oracle系統(tǒng)搜索密碼文件的次序為:在系統(tǒng)注冊庫中查找ORA_SID_PWFILE參數值(它為密碼文件的全路徑名),;若未找到,則查找ORA_PWFILE參數值,;若仍未找到,,則使用缺省值ORACLE_HOME\DATABASE\PWDSID.ORA;其中的SID代表相應的Oracle數據庫系統(tǒng)標識符,。
三,、向密碼文件中增加、刪除用戶:
當初始化參數REMOTE_LOGIN_PASSWORDFILE設置為EXCLUSIVE時,,系統(tǒng)允許除INTERNAL/SYS以外的其他用戶以管理員身份從遠端或本機登錄到Oracle數據庫系統(tǒng),,執(zhí)行數據庫管理工作;這些用戶名必須存在于密碼文件中,,系統(tǒng)才能識別他們,。由于不管是在創(chuàng)建數據庫實例時自動創(chuàng)建的密碼文件,還是使用工具ORAPWD.EXE手工創(chuàng)建的密碼文件,,都只包含INTERNAL/SYS用戶的信息,;為此,,在實際操作中,可能需要向密碼文件添加或刪除其他用戶賬號,。
由于僅被授予SYSOPER/SYSDBA系統(tǒng)權限的用戶才存在于密碼文件中,,所以當向某一用戶授予或收回SYSOPER/SYSDBA系統(tǒng)權限時,他們的賬號也將相應地被加入到密碼文件或從密碼文件中刪除,。由此,,向密碼文件中增加或刪除某一用戶,實際上也就是對某一用戶授予或收回SYSOPER/SYSDBA系統(tǒng)權限,。
要進行此項授權操作,,需使用SYSDBA權限(或INTERNAL賬號)連入數據庫,且初始化參數REMOTE_LOGIN_PASSWORDFILE的設置必須為EXCLUSIVE,。具體操作步驟如下:
創(chuàng)建相應的密碼文件,;
設置初始化參數REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE;
使用SYSDBA權限登錄:
CONNECT SYS/internal_user_passsword AS SYSDBA,;
啟動數據庫實例并打開數據庫,;
創(chuàng)建相應用戶賬號,對其授權(包括SYSOPER和SYSDBA):
授予權限:GRANT SYSDBA TO user_name,;
收回權限:REVOKE SYSDBA FROM user_name,;
現(xiàn)在這些用戶可以以管理員身份登錄數據庫系統(tǒng)了,;
您的位置:欄目分類 > 軟件 > 服務器軟件 > 數據庫應用 >
Oracle密碼文件的使用和維護
|
四,、使用密碼文件登錄:
有了密碼文件后,用戶就可以使用密碼文件以SYSOPER/SYSDBA權限登錄Oracle數據庫實例了,,注意初始化參數REMOTE_LOGIN_PASSWORDFILE應設置為EXCLUSIVE或SHARED,。任何用戶以SYSOPER/SYSDBA的權限登錄后,將位于SYS用戶的Schema之下,,以下為兩個登錄的例子:
1. 以管理員身份登錄:
假設用戶scott已被授予SYSDBA權限,,則他可以使用以下命令登錄:
CONNECT scott/tiger AS SYSDBA
2. 以INTERNAL身份登錄:
CONNECT INTERNAL/INTERNAL_PASSWORD
五、密碼文件的維護:
1. 查看密碼文件中的成員:
可以通過查詢視圖V$PWFILE_USERS來獲取擁有SYSOPER/SYSDBA系統(tǒng)權限的用戶的信息,,表中SYSOPER/SYSDBA列的取值TRUE/FALSE表示此用戶是否擁有相應的權限,。這些用戶也就是相應地存在于密碼文件中的成員。
2. 擴展密碼文件的用戶數量:
當向密碼文件添加的賬號數目超過創(chuàng)建密碼文件時所定的限制(即ORAPWD.EXE工具的MAX_USERS參數)時,,為擴展密碼文件的用戶數限制,,需重建密碼文件,具體步驟如下:
a) 查詢視圖V$PWFILE_USERS,,記錄下?lián)碛蠸YSOPER/SYSDBA系統(tǒng)權限的用戶信息,;
b) 關閉數據庫;
c) 刪除密碼文件,;
d) 用ORAPWD.EXE新建一密碼文件,;
e) 將步驟a中獲取的用戶添加到密碼文件中,。
3. 修改密碼文件的狀態(tài):
密碼文件的狀態(tài)信息存放于此文件中,當它被創(chuàng)建時,,它的缺省狀態(tài)為SHARED,。可以通過改變初始化參數REMOTE_LOGIN_PASSWORDFILE的設置改變密碼文件的狀態(tài),。當啟動數據庫事例時,,Oracle系統(tǒng)從初始化參數文件中讀取REMOTE_LOGIN_PASSWORDFILE參數的設置;當加載數據庫時,,系統(tǒng)將此參數與口令文件的狀態(tài)進行比較,,如果不同,則更新密碼文件的狀態(tài),。若計劃允許從多臺客戶機上啟動數據庫實例,,由于各客戶機上必須有初始化參數文件,所以應確保各客戶機上的初始化參數文件的一致性,,以避免意外地改變了密碼文件的狀態(tài),,造成數據庫登陸的失敗。
4. 修改密碼文件的存儲位置:
密碼文件的存放位置可以根據需要進行移動,,但作此修改后,,應相應修改系統(tǒng)注冊庫有關指向密碼文件存放位置的參數或環(huán)境變量的設置。
5. 刪除密碼文件:
在刪除密碼文件前,應確保當前運行的各數據庫實例的初始化參數REMOTE_LOGIN_PASSWORDFILE皆設置為NONE,。在刪除密碼文件后,,若想要以管理員身份連入數據庫的話,則必須使用操作系統(tǒng)驗證的方法進行登錄,。
|