oracle 系統認證方式

oracle操作系統認證方式

linux下只需要在sqlnet.ora文件中添加:

SQLNET.AUTHENTICATION_SERVICES = (NTS)

就禁止了操作系統認證的登陸方式。如果使用操作系統認證的話,要把nts去掉。如下:

SQLNET.AUTHENTICATION_SERVICES = (TNSNAME,HOSTNAME)

windows下需要添加如下的參數:

SQLNET.AUTHENTICATION_SERVICES = (NONE)

linuxwindows上有所區別的。

1.operating system authentication password file authenticate都是用來給DBAadministratation工作的選項。

2.如果Set REMOTE_LOGIN_PASSWORDFILE to NONE則只能使用OS auth,設成SHARED或者EXCLUSIVE纔可以使用password file auth

3.connect / as sysdba|sysoper命令使用OS auth,此時登陸操作系統的用戶必須屬於ORA_DBA 或者ORA_OPER

4.connect internal/oracle命令使用password file authenticate,此時如果Set REMOTE_LOGIN_PASSWORDFILE to SHARED,則不允許除sysinternal之外的任何用戶以SYSDBA身份登陸,但是可以有多個例程同時使用該password file。如果Set REMOTE_LOGIN_PASSWORDFILE to EXCLUSIVE,則允許除sysinternal之外的擁有SYSDBA role的用戶以SYSDBA身份登陸,但是只能有一個例程同時使用該password file

5.如果這在數據庫所在的機器上做DBA工作,則可以使用OS auth,如果要從別的客戶端做DBA工作,則可以使用password file auth

oracle認證方式分爲操作系統認證和口令文件認證2種方式,操作系統認證有時候也叫本地認證。這2種認證我是這麼理解的:

--操作系統認證:oracle認爲操作系統用戶是可靠的,即既然能登陸到操作系統那麼oracle數據庫你也能登陸

--口令文件認證:oracle認證認爲操作系統用戶是不可信任的,如果要訪問數據庫,必須進行再次認證。

具體實現如下:

--操作系統認證:

配置sqlnet.ora文件中的參數:SQLNET.AUTHENTICATION_SERVICES(NTS)

spfile(pfile)文件參數:REMOTE_LOGIN_PASSWORDFILE=('NONE')

--口令文件認證:

配置sqlnet.ora文件中的參數:SQLNET.AUTHENTICATION_SERVICES(NONE)

spfile(pfile)文件參數:REMOTE_LOGIN_PASSWORDFILE=('EXCLUSIVE')('SHARED')

這個時候需要配置口令文件PWDorcl.ora。(orcl爲數據庫SID

select * from v$pwfile_users;

Oracle數據庫系統中,用戶如果要以特權用戶身份(INTERNALSYSDBASYSOPER)登錄Oracle數據庫可以有兩種身份驗證的方法: 即使用與操作系統集成的身份驗證或使用Oracle數據庫的密碼文件進行身份驗證。因此,管理好密碼文件,對於控制授權用戶從遠端或本機登錄Oracle數據庫系統,執行數據庫管理工作,具有重要的意義。 Oracle數據庫的密碼文件存放有超級用戶INTERNAL/SYS的口令及其他特權用戶的用戶名/口令,它一般存放在ORACLE_HOMEDATABASE目錄下。

一、 密碼文件的創建:   在使用Oracle Instance Manager創建一數據庫實例的時侯,在ORACLE_HOMEDATABASE目錄下還自動創建了一個與之對應的密碼文件,文件名爲PWDSID.ORA,其中SID代表相應的Oracle數據庫系統標識符。此密碼文件是進行初始數據庫管理工作的基礎。在此之後,管理員也可以根 據需要,使用工具ORAPWD.EXE手工創建密碼文件,命令格式如下: C: >ORAPWD FILE= FILENAME > PASSWORD = PASSWORD ENTRIES=< MAX_USERS >    各命令參數的含義爲:    FILENAME:密碼文件名;    PASSWORD:設置INTERNALSYS帳號的口令;    MAX_USERS:密碼文件中可以存放的最大用戶數,對應於允許以SYSDBASYSOPER權限登錄數據庫的最大用戶數。由於在以後的維護中,若 用戶數超出了此限制,則需要重建密碼文件,所以此參數可以根據需要設置得大一些。有了密碼文件之後,需要設置初始化參數REMOTE_LOGIN_PASSWORDFILE來控制密碼文件的使用狀態。

二、 設置初始化參數REMOTE_LOGIN_PASSWORDFILE    Oracle數據庫實例的初始化參數文件中,此參數控制着密碼文件的使用及其狀態。它可以有以下幾個選項: NONE:指示Oracle系統不使用密碼文件,特權用戶的登錄通過操作系統進行身份驗證; EXCLUSIVE:指示只有一個數據庫實例可以使用此密碼文件。只有在此設置下的密碼文件可以包含有除INTERNALSYS以外的用戶信息,即允許將系統權限SYSOPERSYSDBA授予除INTERNALSYS以外的其他用戶。 SHARED:指示可有多個數據庫實例可以使用此密碼文件。在此設置下只有INTERNALSYS帳號能被密碼文件識別,即使文件中存有其他用戶的信息,也不允許他們以SYSOPERSYSDBA的權限登錄。此設置爲缺省值。 REMOTE_LOGIN_PASSWORDFILE參數設置爲EXCLUSIVESHARED情況下,Oracle系統搜索密碼文件的次序爲: 在系統註冊庫中查找ORA_SID_PWFILE參數值(它爲密碼文件的全路徑名); 若未找到,則查找ORA_PWFILE參數值;若仍未找到,則使用缺省值ORACLE_HOMEDATABASEPWDSID.ORA;其中的SID代表相應的Oracle數據庫系統標識符。

三、 向密碼文件中增加、刪除用戶:   當初始化參數REMOTE_LOGIN_PASSWORDFILE設置爲EXCLUSIVE時,系統允許除INTERNALSYS以外的其他用戶以管理員身份從遠端或本機登錄 Oracle數據庫系統,執行數據庫管理工作;這些用戶名必須存在於密碼文件中,系統才能識別他們。由於不管是在創建數據庫實例時自動創建的密碼文件,還是使用工具ORAPWD.EXE手工創建的密碼文件,都只包含INTERNALSYS用戶的信息;爲此,在實際操作中,可能需要向密碼文 件添加或刪除其他用戶帳號。    由於僅被授予SYSOPERSYSDBA系統權限的用戶才存在於密碼文件中,所以當向某一用戶授予或收回SYSOPERSYSDBA系統權限時,他們的 帳號也將相應地被加入到密碼文件或從密碼文件中刪除。由此,向密碼文件中增加或刪除某一用戶,實際上也就是對某一用戶授予或收回 SYSOPERSYSDBA系統權限。    要進行此項授權操作,需使用SYSDBA權限(或INTERNAL帳號)連入數據庫,且初始化參數REMOTE_LOGIN_PASSWORDFILE的設置必須爲 EXCLUSIVE。具體操作步驟如下:創建相應的密碼文件; 設置初始化參數REMOTE_LOGIN_PASSWORDFILEEXCLUSIVE 使用SYSDBA權限登錄: CONNECT SYSinternal_user_passsword AS SYSDBA 啓動數據庫實例並打開數據庫; 創建相應用戶帳號,對其授權(包括SYSOPERSYSDBA): 授予權限:GRANT SYSDBA TO user_name 收回權限:REVOKE SYSDBA FROM user_name;現在這些用戶可以以管理員身份登錄數據庫系統了;

四、 使用密碼文件登錄:    有了密碼文件後,用戶就可以使用密碼文件以SYSOPERSYSDBA權限登錄Oracle數據庫實例了,注意初始化參數 REMOTE_LOGIN_PASSWORDFILE應設置爲EXCLUSIVESHARED。任何用戶以SYSOPERSYSDBA的權限登錄後,將位於SYS用戶的Schema之下,以下爲 兩個登錄的例子:  

1. 以管理員身份登錄:    假設用戶scott已被授予SYSDBA權限,則他可以使用以下命令登錄:    CONNECT scotttiger AS SYSDBA  

2. INTERNAL身份登錄:   CONNECT INTERNALINTERNAL_PASSWORD

五、 密碼文件的維護:  

1. 查看密碼文件中的成員:  

可以通過查詢視圖V$PWFILE_USERS來獲取擁有SYSOPERSYSDBA系統權限的用戶的信息,表中SYSOPERSYSDBA列的取值TRUEFALSE表示此用戶是否擁有相應的權限。這些用戶也就是相應地存在於密碼文件中的成員。

   

2. 擴展密碼文件的用戶數量:   

當向密碼文件添加的帳號數目超過創建密碼文件時所定的限制(即ORAPWD.EXE工具的MAX_USERS參數)時,爲擴展密碼文件的用戶數限制,需重建密碼文件,具體步驟如下:    a) 查詢視圖V$PWFILE_USERS,記錄下擁有SYSOPERSYSDBA系統權限的用戶信息;    b) 關閉數據庫;    c) 刪除密碼文件;    d) ORAPWD.EXE新建一密碼文件;    e) 將步驟a中獲取的用戶添加到密碼文件中。  

3. 修改密碼文件的狀態:   

密碼文件的狀態信息存放於此文件中,當它被創建時,它的缺省狀態爲SHARED。可以通過改變初始化參數REMOTE_LOGIN_PASSWORDFILE的設置改變密碼文件的狀態。當啓動數據庫事例時,Oracle系統從初始化參數文件中讀取REMOTE_LOGIN_PASSWORDFILE參數的設置;當加載數據庫 時,系統將此參數與口令文件的狀態進行比較,如果不同,則更新密碼文件的狀態。若計劃允許從多臺客戶機上啓動數據庫實例,由於各客戶機上必須有初始化參數文件,所以應確保各客戶機上的初始化參數文件的一致性,以避免意外地改變了密碼文件的狀態,造成數據庫登陸的失 敗。  

4. 修改密碼文件的存儲位置:  

密碼文件的存放位置可以根據需要進行移動,但作此修改後,應相應修改系統註冊庫有關指向密碼文件存放位置的參數或環境變量的設置 

5. 刪除密碼文件:   在刪除密碼文件前,應確保當前運行的各數據庫實例的初始化參數REMOTE_LOGIN_PASSWORDFILE皆設置爲NONE。在刪除密碼文件後,若想要以管理員身份連入數據庫的話,則必須使用操作系統驗證的方法進行登錄。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章