以sysdba身份登入oracle報ORA-1031許可權不足錯誤之完美分析
以下轉自:http://mikixiyou.iteye.com/blog/1584891 作者:mikixiyou
在linux 作業系統的資料庫伺服器上,使用”sqlplus / as sysdba” 登入Oracle 10.2 資料庫例項時,登入失敗,顯示ORA-01031: 許可權不足。
在資料庫所在伺服器上登入的操作,使用的是作業系統認證方式登入資料庫例項。在出現“ORA-01031 “ 的錯誤錯誤時,首先去檢查sqlnet.ora 檔案中SQLNET.AUTHENTICATION_SERVICES 項的配置資訊。這種分析是被很多人推薦,在網際網路上也有很多帖子都提及到。
大致得到的結論是:
1 、在windows 下,SQLNET.AUTHENTICATION_SERVICES 必須設定為NTS 或者ALL 才能使用OS 認證;不設定或者設定為其他任何值都不能使用OS 認證。
2 、在linux 下,在SQLNET.AUTHENTICATION_SERVICES 的值設定為ALL ,或者不設定的情況下,OS 驗證才能成功;設定為其他任何值都不能使用OS 認證。
首先肯定一點,這種分析方法是沒有錯的。我在碰到這種問題時,首先去分析的也是這個檔案的配置。
但在本案例中,sqlnet.ora 檔案的內容如下:
[oracle@mikitradedb1 ~]$ more /u01/app/oracle/product/10.0.2/db_1/network/admin/sqlnet.ora
# sqlnet.ora Network Configuration File: /u01/app/oracle/product/10.0.2/db_1/network/admin/sqlnet.ora
# Generated by Oracle configuration tools.
NAMES.DIRECTORY_PATH= (TNSNAMES)
你會不會認為,還要堅持例項的初始化引數remote_login_passwordfile ,還有密碼檔案。而這兩點是在異地伺服器上使用sysdba 身份登入資料庫例項時才會用到,現在情況是在本地資料庫伺服器上登入資料庫例項。
再分析一下作業系統使用者登入作業系統後再訪問資料庫例項的行為。
使用sysdba 身份連線資料庫例項,使用的認證方式是作業系統認證,而這一認證操作過程是作業系統根據它管理的資訊去校驗該使用者是否可以連線資料庫的過程。
因此,需要進一步分析的是,作業系統如果判斷oracle 使用者符合認證條件。很顯然,我們這裡的oracle 使用者的許可權被作業系統或者oracle 系統拒絕了。
Oracle 認為,需要滿足下列條件的使用者才能使用系統認證方式連線資料庫例項。
1 、系統使用者oracle 必須屬於一個特定的組
該使用者必須屬於OSDBA 組才能以sysdba 身份登入。這裡的OSDBA 組在不同型別的作業系統上,名稱會不一樣。在unix 系統上名稱為“dba ” ,而在windows 系統上名稱則為“ORA_DBA ” 。
2 、sqlnet.authentication_services 的引數必須設定正確
在unix 系統上,該引數值必須設定為ALL ,或者不設定;在windows 上,它必須設定為NTS 。
我們回到環境中去檢查系統使用者oracle 的所屬組的情況。
[oracle@mikitradedb1 ~]$ id oracle
uid=501(oracle) gid=501(oinstall) groups=501(oinstall)
發現該使用者只屬於oinstall ,而沒有dba 。
因此,我們在root 環境下使用usermod 對該使用者進行調整。如下所示:
[root@mikitradedb1 ~]# usermod -G oinstall,dba -g oinstall oracle
[root@mikitradedb1 ~]# id oracle
uid=501(oracle) gid=501(oinstall) groups=501(oinstall),503(dba)
再次驗證sysdba 身份登入操作,如下所示:
[root@mikitradedb1 ~]# su - oracle
[oracle@mikitradedb1 ~]$ sqlplus / as sysdba
SQL*Plus: Release 10.2.0.4.0 - Production on Wed Jul 11 09:47:50 2012
Copyrigmiki (c) 1982, 2007, Oracle. All Rigmikis Reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
結果顯示已經是登入成功,問題就在oracle 使用者沒有在dba 組中。
總而言之,在本地以sysdba 身份登入資料庫例項時,碰到ORA-01031 許可權不足的錯誤,需要系統使用者所在的組是否有dba 和sqlnet.ora 檔案中sqlnet.authentication_services 是否配置正確。
如果還有問題,還有一種方法可以繼續分析。使用作業系統分析工具對sqlplus 應用進行分析。
Linux:
strace -o /tmp/strace_sysdba.output -cfT sqlplus / as sysdba
AIX, Solaris:
truss -fea -o /tmp/truss_sysdba.output sqlplus / as sysdba
HP-UX:
tusc -afpo /tmp/tusc_sysdba.output -aef sqlplus / as sysdba
分析工具使用方法可以參考mikitp://mikixiyou.iteye.com/admin/blogs/1489090
根據分析內容,可以進一步判斷問題所在。
本文主要參考資料為Oracle 的“Troubleshooting ORA-1031: Insufficient Privileges While Connecting As SYSDBA [ID 730067.1] ” 一文。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22207394/viewspace-1073236/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- sqlplus / as sysdba 登入報許可權不足 for windowsSQLWindows
- sqlplus / as sysdba登入提示ORA-01031: 許可權不足SQL
- ORACLE軟體克隆完成後sysdba登入提示沒有許可權Oracle
- 客戶端使用sysdba許可權登入資料庫客戶端資料庫
- create or replace view 報許可權不足View
- ORA-1031許可權不足 TNS-12571包寫入程式失敗
- sqlplus “/ as sysdba”登入的時候提示沒有許可權SQL
- Oracle RAC啟動CRS報錯:登陸許可權問題Oracle
- Oracle的SYS使用者登入報許可權不足(ORA-01031: insufficient privileges)Oracle
- 後臺登入提示:”登入失敗:資料庫目錄寫入許可權不足!“資料庫
- PbootCMS後臺登入提示:“登入失敗:資料庫目錄寫入許可權不足!”boot資料庫
- PbootCMS後臺登入提示:”登入失敗:資料庫目錄寫入許可權不足!“boot資料庫
- 總結sysdba和sysoper許可權
- ORACLE 觸發器控制使用者登入之許可權限制Oracle觸發器
- 【問題處理】以SYSOPER許可權登入資料庫觸發ORA-01075錯誤資料庫
- 【Oracle】sqlplus 遇到共享庫許可權不足OracleSQL
- Oracle 軟體克隆後sysdba登入提示沒有許可權ora-01031: insufficient privilegesOracle
- Oracle限制具備資料庫超級管理員(SYSDBA)許可權的使用者遠端登入Oracle資料庫
- 在windows上以sysdba登陸oracleWindowsOracle
- ThinkPHP6 寫入日誌許可權報錯PHP
- node.js學習之npm 入門 ——3.《防止許可權錯誤》Node.jsNPM
- 動態SQL 無許可權錯誤SQL
- 01【若依框架】 登入許可權框架
- ORA-01031: 許可權不足 ORACLE 817Oracle
- 【許可權】儲存過程執行時,報ORA-01031許可權不足儲存過程
- sqlplus / as sysdba 提示許可權不足(ORA-01031)問題處理SQL
- Vim儲存時許可權不足
- sqlplus / as sysdba無法登入的奇怪報錯SQL
- 許可權之選單許可權
- android AVC錯誤修改許可權方法Android
- windows 下用 as sysdba登陸報錯Windows
- Oracle的物件許可權、角色許可權、系統許可權Oracle物件
- 登入失敗,提示“資料庫目錄許可權寫入不足”,可以操作設定資料庫目錄許可權為 777。資料庫
- 網站提示:”會話目錄寫入許可權不足“網站會話
- expdp/impdp使用sysdba許可權遷移資料
- Oracle角色許可權之Default RoleOracle
- ORACLE許可權Oracle
- 2 Day DBA-管理Oracle例項-關於管理帳戶和許可權-SYSDBA和SYSOPER系統許可權Oracle