Oracle密碼檔案的建立、使用和維護

來源:互聯網
上載者:User
oracle|建立

在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資料庫系統標識符。
三、向密碼檔案中增加、刪除使用者:
當初始化參數REMOTE_LOGIN_PASSWORDFILE設定為EXCLUSIVE時,系統允許除INTERNAL/SYS以外的其他使用者以管理員身份從遠端或本機登入到Oracle資料庫系統,執行資料庫管理工作;這些使用者名稱必須存在於密碼檔案中,系統才能識別他們。由於不管是在建立資料庫執行個體時自動建立的密碼檔案,還是使用工具ORAPWD.EXE手工建立的密碼檔案,都只包含INTERNAL/SYS使用者的資訊;為此,在實際操作中,可能需要向密碼檔案添加或刪除其他使用者帳號。 由於僅被授予SYSOPER/SYSDBA系統許可權的使用者才存在於密碼檔案中,所以當向某一使用者授予或收回SYSOPER/SYSDBA系統許可權時,他們的帳號也將相應地被加入到密碼檔案或從密碼檔案中刪除。由此,向密碼檔案中增加或刪除某一使用者,實際上也就是對某一使用者授予或收回SYSOPER/SYSDBA系統許可權。
要進行此項授權操作,需使用SYSDBA許可權(或INTERNAL帳號)連入資料庫,且初始化參數REMOTE_LOGIN_PASSWORDFILE的設定必須為EXCLUSIVE。具體操作步驟如下:
建立相應的密碼檔案;
設定初始化參數REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE;
使用SYSDBA許可權登入:
CONNECT SYS/internal_user_passsword AS SYSDBA;  啟動資料庫執行個體並開啟資料庫;
建立相應使用者帳號,對其授權(包括SYSOPER和SYSDBA):
授予許可權:GRANT SYSDBA TO user_name;
收回許可權:REVOKE SYSDBA FROM user_name;
現在這些使用者可以以管理員身份登入資料庫系統了;

四、使用密碼檔案登入:
有了密碼檔案後,使用者就可以使用密碼檔案以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系統許可權的使用者的資訊,表中SYSOPER/SYSDBA列的取值TRUE/FALSE表示此使用者是否擁有相應的許可權。這些使用者也就是相應地存在於密碼檔案中的成員。
2. 擴充密碼檔案的使用者數量:
當向密碼檔案添加的帳號數目超過建立密碼檔案時所定的限制(即ORAPWD.EXE工具的MAX_USERS參數)時,為擴充密碼檔案的使用者數限制,需重建密碼檔案,具體步驟如下:  a) 查詢檢視V$PWFILE_USERS,記錄下擁有SYSOPER/SYSDBA系統許可權的使用者資訊;
b) 關閉資料庫;
c) 刪除密碼檔案;
d) 用ORAPWD.EXE建立一密碼檔案;
e) 將步驟a中擷取的使用者添加到密碼檔案中。

3. 修改密碼檔案的狀態:
密碼檔案的狀態資訊存放於此檔案中,當它被建立時,它的預設狀態為SHARED。可以通過改變初始化參數REMOTE_LOGIN_PASSWORDFILE的設定改變密碼檔案的狀態。當啟動資料庫案例時,Oracle系統從初始化參數檔案中讀取REMOTE_LOGIN_PASSWORDFILE參數的設定;當載入資料庫時,系統將此參數與口令檔案的狀態進行比較,如果不同,則更新密碼檔案的狀態。若計劃允許從多台客戶機上啟動資料庫執行個體,由於各客戶機上必須有初始化參數檔案,所以應確保各客戶機上的初始化參數檔案的一致性,以避免意外地改變了密碼檔案的狀態,造成資料庫登陸的失敗。
4. 修改密碼檔案的儲存位置:
密碼檔案的存放位置可以根據需要進行移動,但作此修改後,應相應修改系統註冊庫有關指向密碼檔案存放位置的參數或環境變數的設定。

5. 刪除密碼檔案:
在刪除密碼檔案前,應確保當前啟動並執行各資料庫執行個體的初始化參數REMOTE_LOGIN_PASSWORDFILE皆設定為NONE。在刪除密碼檔案後,若想要以管理員身份連入資料庫的話,則必須使用作業系統驗證的方法進行登入。



相關文章

Beyond APAC's No.1 Cloud

19.6% IaaS Market Share in Asia Pacific - Gartner IT Service report, 2018

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。