1. 程式人生 > >conn / as sysdba 出現ORA-01031: insufficient privileges的解決方案

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資料庫的時候 就是因為口令檔案建立的路徑和名稱不對才遇到這個錯誤