Oracle操作系統認證方式
在Oracle數據庫系統中,用户如果要以特權用户身份(INTERNAL/SYSDBA/SYSOPER)登錄Oracle數據庫可以有兩種身份驗證的方法: 即使用與操作系統集成的身份驗證或使用Oracle數據庫的密碼文件進行身份驗證。因此,管理好密碼文件,對於控制授權用户從遠端或本機登錄Oracle數據庫系統,執行數據庫管理工作,具有重要的意義。 Oracle數據庫的密碼文件存放有超級用户INTERNAL/SYS的口令及其他特權用户的用户名/口令,它一般存放在ORACLE_HOMEDATABASE目錄下。
一、 密碼文件的創建:
在使用Oracle Instance Manager創建一數據庫實例的時侯,在ORACLE_HOMEDATABASE目錄下還自動創建了一個與之對應的密碼文件,文件名為,其中SID代表相應的Oracle數據庫系統標識符。此密碼文件是進行初始數據庫管理工作的基礎。在此之後,管理員也可以根 據需要,使用工具手工創建密碼文件,命令格式如下: 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_HOMEDATABASE;其中的SID代表相應的Oracle數據庫系統標識符。
三、 向密碼文件中增加、刪除用户:
當初始化參數REMOTE_LOGIN_PASSWORDFILE設置為EXCLUSIVE時,系統允許除INTERNAL/SYS以外的其他用户以管理員身份從遠端或本機登錄 到Oracle數據庫系統,執行數據庫管理工作;這些用户名必須存在於密碼文件中,系統才能識別他們。由於不管是在創建數據庫實例時自動創建的密碼文件,還是使用工具手工創建的密碼文件,都只包含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. 擴展密碼文件的用户數量:
當向密碼文件添加的帳號數目超過創建密碼文件時所定的限制(即工具的MAX_USERS參數)時,為擴展密碼文件的用户數限制,需重建密碼文件,具體步驟如下: a) 查詢視圖V$PWFILE_USERS,記錄下擁有SYSOPER/SYSDBA系統權限的用户信息; b) 關閉數據庫; c) 刪除密碼文件; d) 用新建一密碼文件; e) 將步驟a中獲取的用户添加到密碼文件中。
3. 修改密碼文件的狀態:
密碼文件的狀態信息存放於此文件中,當它被創建時,它的缺省狀態為SHARED。可以通過改變初始化參數REMOTE_LOGIN_PASSWORDFILE的設置改變密碼文件的狀態。當啟動數據庫事例時,Oracle系統從初始化參數文件中讀取REMOTE_LOGIN_PASSWORDFILE參數的設置;當加載數據庫 時,系統將此參數與口令文件的狀態進行比較,如果不同,則更新密碼文件的狀態。若計劃允許從多台客户機上啟動數據庫實例,由於各客户機上必須有初始化參數文件,所以應確保各客户機上的初始化參數文件的一致性,以避免意外地改變了密碼文件的狀態,造成數據庫登陸的失 敗。
4. 修改密碼文件的存儲位置:
密碼文件的存放位置可以根據需要進行移動,但作此修改後,應相應修改系統註冊庫有關指向密碼文件存放位置的參數或環境變量的設置
5. 刪除密碼文件:
在刪除密碼文件前,應確保當前運行的各數據庫實例的初始化參數REMOTE_LOGIN_PASSWORDFILE皆設置為NONE。在刪除密碼文件後,若想要以管理員身份連入數據庫的話,則必須使用操作系統驗證的方法進行登錄。
-
Oracle考試認證疑問解答
Oracle公司(甲骨文)是全球最大的信息管理軟件及服務供應商,成立於1977年,總部位於美國加州Redwoodshore,面向全球開放oracle認證。以下是小編整理的Oracle考試認證疑問解答,希望大家認真閲讀!【大數據出來了,關係型數據庫還有前途嗎?】Oracle是目前僅有的幾家把大數...
-
Oracle學習方法
你父母不是富豪,那你就努力點!如果你不對自己狠一點,過了十年你可能還是碌碌無為。想做成什麼事都需要努力,學習oracle也不例外,不要相信什麼速成法(承諾的可信嗎?最可靠的是自己)。興趣+堅持感興趣能讓你堅持的更長久,哪怕你是間接地感興趣(想掙很多錢Oracle學習方...
-
Java中調用Oracle包的過程
在Java中調用Oracle包是我們程序員經常遇到的.事情,那麼它具體的過程是怎麼樣的呢?我們一起來看看!一、先在oracle中編寫測試過程1、首選建一個測試表--CreatetablecreatetableBOOK(BOOKIDVARCHAR2(50)notnull,BOOKNAMEVARCHAR2(50)notnull,PUBLISHERVARCHAR2(5...
-
Oracle認證考試注意事項
入場前請出示考試票以及兩種有效身份證件(請參照下文證件要求),並填寫簽到表及考生協議,手續不全者考管員有權拒絕其參加考試;若在考試過程中,由於技術故障導致考試無法進行,應立即與考管員聯繫,由考管員進行處理或安排重考,否則責任由考生本人承擔。證件要求(考生攜...