Windows環境下ORA-12638錯誤及SYS使用者登陸許可權驗證
今天在辦公電腦(Windows XP)上安裝Oracle 10g時,安裝Oracle軟體時沒有出現問題,但是在DBCA建庫的時候,出現了“ORA-12638:Credential retrieval failed”錯誤。
原因是:Oracle不能應用作業系統認證而導致的。電腦的使用者是域使用者,可能是域使用者沒有走作業系統認證的許可權。
解決方法:將sqlnet.ora檔案裡的SQLNET.AUTHENTICATION_SERVICES= (NTS)註釋掉,或者將這個引數改為SQLNET.AUTHENTICATION_SERVICES= (NONE)。
NTS是Windows作業系統登入資料庫的驗證方式,SQLNET.AUTHENTICATION_SERVICES= (NTS)這個引數只對Windows系統有效,這個引數等於NTS,即可以用口令檔案驗證,又可以用作業系統驗證的方式來登入Oracle資料庫;這個引數等於NONE表示只允許使用口令檔案驗證的方式來登入資料庫。而一般情況下域使用者不能應用作業系統認證而身份證明檢索失敗。
Oracle登入認證有兩種方式:
Oracle普通使用者的密碼是存在資料庫的資料字典裡,所以普通使用者只有在資料庫OPEN狀態下才能登入資料庫。但有兩種使用者可以在資料庫沒有開啟的狀態下登入資料庫,這就是具有SYSDBA和SYSOPER許可權的使用者。這兩種使用者登入資料庫有兩種方式,作業系統(OS)認證和口令檔案認證。使用者到底採用哪種方式登入,取決於sqlnet.ora檔案中的SQLNET.AUTHENTICATION_SERVICES引數。該引數的值設定為NTS,允許使用者使用OS認證,此時使用者可以不使用密碼直接登入資料庫,即“sqlplus / as sysdba”。該引數值為NONE,則關閉OS認證,此時使用者只能通過口令檔案認證的方式登入資料庫。
使用者能否通過口令檔案驗證成功登入資料庫,受以下兩個因素制約:
1、引數檔案中的remote_login_passwordfile引數,該引數有以下3個值可以設子:
NONE:指示Oracle系統不使用口令檔案,擁有SYS許可權的使用者通過OS認證的方式登入資料庫。
EXCLUSIVE:指只有一個資料庫例項可以使用此口令檔案。只有在此設定下的口令檔案可以包含除INTERNAL/SYS以外的使用者資訊,即允許將SYSDBA/SYSOPER許可權授予除INTERNAL/SYS以外的其他使用者。(10g和11g預設)
SHARED:指可有多個資料庫例項使用此口令檔案。在此設定下只有INTERNAL/SYS使用者能被口令檔案識別,即使檔案中存有其他使用者的資訊,也不允許他們一SYSDBA/SYSOPER的許可權登入。
可以通過下面的命令檢視remote_login_passwordfile的引數值:
SQL> show parameter remote_login_password
NAME TYPE VALUE
------------------------------------ ----------- ----------------------
remote_login_passwordfile string EXCLUSIVE
可以通過查詢V$PWFILE_USERS檢視來檢視擁有SYSDBA/SYSOPER許可權的使用者資訊:
SQL> select * from v$pwfile_users;
USERNAME SYSDB SYSOP
------------------------ ----- -----
SYS TRUE TRUE
2、口令檔案是否存在,密碼是否正確。
在remote_login_passwordfile引數設定為EXCLUSIVE、SHARED的情況下,用有SYSDBA和SYSOPER許可權的使用者可以使用口令檔案驗證的方式登入資料庫。Oracle搜尋口令檔案的次序為:
(1)、在系統註冊庫中查詢ORA_SID_PWFILE引數值(它為口令檔案的全路徑名);
(2)、若未找到,則查詢ORA_PWFILE引數值;
(3)、若仍未找到,則使用預設值ORACLE_HOME\DATABASE\PWDSID.ORA;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25744374/viewspace-749824/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Windows環境下提升程式的許可權Windows
- mysql8下建立使用者遠端登陸許可權MySql
- Linux賬號安全——使用者登陸許可權Linux
- Oracle RAC啟動CRS報錯:登陸許可權問題Oracle
- mysql之許可權驗證MySql
- SYS執行SQL報錯缺少許可權SQL
- 使用者管理及操作許可權設定驗證寫出新思路
- Oracle檢視當前登陸使用者的許可權或者角色Oracle
- h5直播原始碼,使用者登入流程及許可權校驗H5原始碼
- Fake許可權驗證小例子
- 【PASSWORD】Linux環境下使用密碼驗證方式重置SYS使用者密碼Linux密碼
- windows 下用 as sysdba登陸報錯Windows
- 易優cms網站後臺登陸驗證碼錯誤,如何不使用驗證碼登陸?或者如何修復?網站
- 登陸vCenter Server提示沒有許可權問題Server
- 使用SYS使用者遠端登陸報許可權不足的解決:ORA-01031: insufficient privileges
- 資料許可權技術驗證
- 資料許可權驗證MyBatis版MyBatis
- ora-01031錯誤(在客戶端以SYS使用者登陸報錯)客戶端
- sys使用者使用@連線符提示無效許可權的錯誤ORA-01031:
- 動態SQL 無許可權錯誤SQL
- MySQL 如何快速複製使用者許可權到其他環境MySql
- MySQL 使用者及許可權管理?MySql
- MySQL使用者及許可權管理MySql
- Springboot 整合ApachShiro完成登入驗證和許可權管理Spring Boot
- 看看Webphere portal(網站自動生成)的許可權驗證和單點登陸是如何做的。Web網站
- 小知識:軟體開發的許可權控制和許可權驗證
- android AVC錯誤修改許可權方法Android
- Struts開發一個許可權驗證攔截器來判斷使用者是否登入
- mysql 8.0.21使用者及許可權操作MySql
- 使用者及檔案許可權管理
- 三層登陸程式碼及錯誤集錦
- Spring boot 入門(四):整合 Shiro 實現登陸認證和許可權管理Spring Boot
- AJAX+JAVA使用者登陸註冊驗證Java
- Vue 配合eiement動態路由,許可權驗證Vue路由
- sqlplus / as sysdba 登入報許可權不足 for windowsSQLWindows
- Oracle 使用者、物件許可權、系統許可權Oracle物件
- Oracle的SYS使用者登入報許可權不足(ORA-01031: insufficient privileges)Oracle
- 批量修改資料夾及檔案使用者許可權和使用者組許可權 centosCentOS