基於Windows平臺的OS認證

OS驗證指的是Oracle數據庫不再自行檢查請求用戶的合法性,而是將此過程委託給用戶所在的操作系統,由操作系統代理完成用戶合法性的檢查工作。對於採用此種認證機制的用戶在連接數據庫時無需輸入用戶名和密碼即可登錄。
        Windows平臺下的用戶OS認證配置基本上分成兩大類型:
一、配置以sysdba角色登陸的用戶
[1]確保SQLNET.AUTHENTICATION_SERVICES=(NTS)
附加:此參數位於$ORACLE_HOME/network/admin下的sqlnet.ora文件中,若允許遠程用戶以OS認
證形式登錄數據庫(即由遠程用戶所使用的操作系統負責驗證),則須將SPFILE<目標數據庫名>.ORA參數文件中的remote_os_authent參數值改爲TRUE,可如下修改此參數值:alter system set remote_os_authent=TRUE scope=spfile;若不允許則修改remote_os_authent=false即可
[2]以系統管理員身份登錄系統後創建一個組,組名爲:ORA_DBA,然後再創建一個用戶,最後將此用戶添加進此組中
[3]註銷後以ORACLE_SID組中的任意一用戶登錄操作系統
附加:對於系統管理員[2]與[3]步系統已爲我們實現,對於非管理員身份的用戶才需自己實現
[4]發送連接請求,如:SQL>conn / as sysdba;即可成功連接上目標數據庫
附加:目標數據庫由註冊表中的ORACLE_SID(HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE/HOMEO)值指定,並且此種連接都是以sys用戶登錄數據庫的,所以對此種配置一定要慎重
 
二、配置以普通角色登陸的用戶
[1]確保SQLNET.AUTHENTICATION_SERVICES=(NTS)
附加:注意事項同上
[2]查看註冊表中參數OSAUTH_PREFIX_DOMAIN和數據庫中屬性os_authent_prefix值
查看OSAUTH_PREFIX_DOMAIN參數:HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE/HOMEO
查看OS_AUTHENT_PREFIX參數命令:SQL>SHOW PARAMETER OS;(以sysdba角色登陸數據庫查看)
SQL> show parameter os;
NAME                                TYPE        VALUE
------------------------------------ ----------- ------------------------------
optimizer_index_cost_adj             integer     100
os_authent_prefix                    string
os_roles                             boolean     FALSE
remote_os_authent                    boolean     TRUE
remote_os_roles                      boolean     FALSE
timed_os_statistics                  integer     0
[3]創建數據庫用戶
SQL>CREATE USER 用戶名 IDENTIFIED EXTERNALLY;
用名取名規則:[<OPS$>][<DOMAIN_NAME>\]<USER_NAME>
<DOMAIN_NAME>僅當OSAUTH_PREFIX_DOMAIN(默認爲TRUE)爲TRUE時才需要,其值一般爲計算機名
<OPS$>通過OS_AUTHENT_PREFIX參數指定
如:SQL>CREATE USER “82BDAAAECC81499\DORA” IDENTIFIED EXTERNALLY;(注意用戶名大寫)
[4]創建一個與數據庫同名的操作系統用戶(即用戶名等同於<USER_NAME>值)
[5]註銷後以新創建的用戶登錄,然後C:\Documents and Settings\dora.82BDAAAECC81499>sqlplus / 後即可順利連接上由ORACLE_SID指定的數據庫


本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/cowbane/archive/2008/02/18/2103562.aspx

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