域帳號(hào)登陸該機(jī),創(chuàng)建數(shù)據(jù)庫(kù)的時(shí)候提示“ORA-12638 身份證明檢索失敗”。
sqlnet.authentication_services
http://www-rohan.sdsu.edu/doc/oracle/network803/A54084_01/ch3.htm
http://www.itpub.net/139570.html
一、服務(wù)器上使用操作系統(tǒng)驗(yàn)證
1.配置SQLNET.ORA文件
參數(shù)NAMES.DIRECTORY_PATH= (TNSNAMES, ONAMES, HOSTNAME)
表明解析客戶(hù)端連接時(shí)所用的主機(jī)字符串的方式
TNSNAMES表示采用TNSNAMES.ORA文件來(lái)解析
ONAMES表示Oracle使用自己的名稱(chēng)服務(wù)器(Oracle Name Server)來(lái)解析,目前Oracle建議使用輕量目錄訪(fǎng)問(wèn)協(xié)議LDAP來(lái)取代ONAMES
HOSTNAME表示使用host文件,DNS,NIS等來(lái)解析
參數(shù)SQLNET.AUTHENTICATION_SERVICES= (NONE,NTS)
表明用戶(hù)連接Oracle服務(wù)器時(shí)使用哪種驗(yàn)證方式
NONE表示Oracle數(shù)據(jù)庫(kù)身份驗(yàn)證,NTS表示操作系統(tǒng)身份驗(yàn)證,兩種方式可以并用
2.建立相應(yīng)的操作系統(tǒng)組及用戶(hù)加入該組
ORA_DBA組中的域用戶(hù)和本地用戶(hù)不需要Oracle用戶(hù)名和密碼就可以登錄Oracle
而且該組的用戶(hù)登錄數(shù)據(jù)庫(kù)后都具有SYSDBA權(quán)限
(多個(gè)實(shí)例時(shí),可以建立類(lèi)似這樣的組ORA_SID_DBA,其中SID指實(shí)例名)
同理:ORA_OPER組中的成員具有SYSOPER角色的權(quán)限。
3.登錄方式
C:\>sqlplus “/ as sysdba”
或者C:\>sqlplus nolog,然后SQL>connect / as sysdba
4.init.ora中的Remote_Login_Passwordfile對(duì)身份驗(yàn)證的影響
三個(gè)可選值:
NONE:默認(rèn)值,指示Oracle系統(tǒng)不使用密碼文件,通過(guò)操作系統(tǒng)進(jìn)行身份驗(yàn)證的特權(quán)用戶(hù)擁有SYSORA和SYSOPER權(quán)限
EXCLUSIVE:
1.表示只有一個(gè)數(shù)據(jù)庫(kù)實(shí)例可以使用密碼文件
2.允許將SYSORA和SYSOPER權(quán)限賦值給SYS以外的其它用戶(hù)
SHARED:
1.表示可以有多個(gè)數(shù)據(jù)庫(kù)實(shí)例可以使用密碼文件
2.不允許將SYSORA和SYSOPER權(quán)限賦值給SYS以外的其它用戶(hù)
所以,如果要以操作系統(tǒng)身份登錄,Remote_Login_Passwordfile應(yīng)該設(shè)置為NONE
5.當(dāng)?shù)卿浻脩?hù)不是ORA_DBA組和ORA_OPER組成員時(shí),登錄數(shù)據(jù)庫(kù)
需要在Oracle中創(chuàng)建當(dāng)前操作系統(tǒng)用戶(hù)相同的用戶(hù)名,如果當(dāng)前用戶(hù)是域用戶(hù),則名稱(chēng)為:domainname\yourname,
如果是本地計(jì)算機(jī)用戶(hù),則名稱(chēng)為:computername\yourname
創(chuàng)建方法:
create "domainname\yourname" identified externally;
grant connect to "domainname\yourname";
Windows操作系統(tǒng),修改注冊(cè)表HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0下面添加OSAUTH_PREFIX_DOMAIN,值設(shè)為FALSE,在創(chuàng)建Oracle用戶(hù)時(shí)可以忽略掉域名
這種方式下,init.ora中有一個(gè)參數(shù)將影響數(shù)據(jù)庫(kù)如何匹配一個(gè)windows用戶(hù)和Oracle用戶(hù)
os_authent_prefix = ""
缺省為空,Oracle8i以前,無(wú)該參數(shù),而使用OPS$作為用戶(hù)名前綴.(Oracle用戶(hù)名最大長(zhǎng)度限制為30個(gè)字符)
--------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------
二、遠(yuǎn)程客戶(hù)端使用操作系統(tǒng)驗(yàn)證
首先需要在init.ora文件中設(shè)置如下參數(shù):
REMOTE_OS_AUTHENT=TRUE
Oracle不推薦在遠(yuǎn)程客戶(hù)端上使用操作系統(tǒng)驗(yàn)證,因?yàn)榭蛻?hù)端驗(yàn)證時(shí)不是通過(guò)服務(wù)器上的操作系統(tǒng)用戶(hù)來(lái)驗(yàn)證,而是使用客戶(hù)端自己怕操作系統(tǒng)來(lái)進(jìn)行windows驗(yàn)證,這樣,客戶(hù)端可以采用建立對(duì)應(yīng)的windows機(jī)器名和用戶(hù)名的方式來(lái)欺騙Oracle的操作系統(tǒng)驗(yàn)證.
例如:
創(chuàng)建了如下Oracle用戶(hù)
create "zl\zyk" identified externally;
grant connect to "zl\zyk";
如果有一臺(tái)名為ZL的機(jī)器,創(chuàng)建了一個(gè)名為zyk的用戶(hù),并以此登錄連接Oracle服務(wù)器(連接時(shí)使用\@OracleSTR),無(wú)需用戶(hù)名和密碼
造成此問(wèn)題的原因是,Oracle使用客戶(hù)端操作系統(tǒng)進(jìn)行驗(yàn)證,它無(wú)法區(qū)別zl是域名還是機(jī)器名.
Windows &.net雜志2004第7期(http://www.winnetmag.com/Windows/Articles/ArticleID/42280/pg/1/1.html)
作者在文章中強(qiáng)調(diào)(第三頁(yè)最后一段):
Oracle數(shù)據(jù)庫(kù)服務(wù)器上的windows身份認(rèn)證很容易實(shí)施,并且使已登錄的用戶(hù)訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)很方便
但是,這種驗(yàn)證模型并不適合遠(yuǎn)程客戶(hù)端,因?yàn)榘踩[患太大。
--------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------
三、Oracle 9i對(duì)操作系統(tǒng)身份認(rèn)證支持的增強(qiáng)
Oracle 9i可以與活動(dòng)目錄集成,通過(guò)Oracle Enterprise Security Manager 管理用戶(hù)權(quán)限
Enterprise user authentication做為一種新的外部集中認(rèn)證模式
(也叫 global user authentication,Oracle 9i以前的External user authentication僅僅采用了客戶(hù)端操作系統(tǒng)本地認(rèn)證)
Oracle9i運(yùn)行在一個(gè)win2000及以上的域中,注冊(cè)表HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOMEID,參數(shù)OSAUTH_X509_NAME設(shè)置為true
(默認(rèn)為false,如果該參數(shù)不存在,則新增為REG_EXPAND_SZ類(lèi)型)
注意:Windows NT 4.0 domain 不支持這種方式
參考:
http://www.utexas.edu/its/unix/reference/oracledocs/v92/B10501_01/win.920/a95492/enterpri.htm
http://www.utexas.edu/its/unix/reference/oracledocs/v92/B10501_01/win.920/a95492/authen.htm
http://www.utexas.edu/its/unix/reference/oracledocs/v92/B10501_01/network.920/a96573/asoauth.htm
http://www.cnblogs.com/zyk/archive/2004/11/09/61786.html