kapok

          垃圾桶,嘿嘿,我藏的這么深你們還能找到啊,真牛!

            BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            455 隨筆 :: 0 文章 :: 76 評(píng)論 :: 0 Trackbacks
          特征:

          域帳號(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

          posted on 2005-08-05 19:12 笨笨 閱讀(588) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): ALLOracle
          主站蜘蛛池模板: 海门市| 惠水县| 漯河市| 巴塘县| 霍山县| 东乌珠穆沁旗| 娄底市| 东海县| 武川县| 迁西县| 清徐县| 榆中县| 桃源县| 平顺县| 光山县| 古浪县| 赤壁市| 大名县| 洛扎县| 泸溪县| 承德市| 丽江市| 镇宁| 衡南县| 沽源县| 丹阳市| 靖远县| 依兰县| 乌兰县| 广灵县| 吴桥县| 东平县| 彭泽县| 昭通市| 织金县| 资源县| 响水县| 方山县| 津南区| 商丘市| 东乡县|