conn / as sysdba 出現ORA-01031: insufficient privileges的解決方案
一、檢查sqlnet.ora(WINDOWS下位於%ORACLE_HOME%NETWORKADMIN目錄)是否包含這句:SQLNET.AUTHENTICATION_SERVICES=(NTS),沒有的話加上
sqlnet.ora所在目錄(以Oracle 11g為例):
二、檢查登陸windows的使用者(administrator或安裝oracle時候使用的使用者)是不是在包含在ORA_DBA組中,域使用者沒有連上域伺服器時就可能出現這種現象。
步驟:
1、計算機管理—>組
在最後一步,選擇你自己的當前系統的登入使用者即可。
三、要保證 remote_login_passwordfile 引數 = EXCLUSIVE .
四、 看看是否需要使用orapassw生成口令檔案 .
一種解決方法案例:
1、檢查系統引數:
SQL> show parameter password
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
remote_login_passwordfile string EXCLUSIVE
2、
select * from v$pwfile_users;
SQL>
為空
3、
SQL> grant sysdba to sys;
grant sysdba to sys
*
ERROR at line 1:
ORA-01994: GRANT failed: password file missing or disabled
4、建立password檔案
D:/>orapwd file="D:/oracle/product/10g/db_1/database/PWDoratest.ora" password=gp
oswong entries=10
5、
SQL> select * from v$pwfile_users;
USERNAME SYSDB SYSOP
------------------------------ ----- -----
SYS TRUE TRUE
SYS正常顯示出來。
6、重新在遠端以SYSDBA登入,可正常使用。
如果口令檔案建立的有問題,也是會報如下的錯誤:
ora-01031:insufficient privileges
口令檔案的命名格式應為orapwsid,並且sid是區分大小寫的。由於Target Database連線Auxiliary Database時需要驗證口令,
如果違反了以上規則,將會提示ORA-01031: insufficient privileges。
我在用linux建立duplicate資料庫的時候 就是因為口令檔案建立的路徑和名稱不對才遇到這個錯誤