author:skate
time :2009/06/24
sqlplus "/ as sysdba" 連不上,報ora-01031:insufficient privileges解決方案
注意多個資料庫執行個體時候,set ORACLE_SID='',
1、檢查sqlnet.ora(WINDOWS下位於%ORACLE_HOME%NETWORKADMIN目錄)是否包含這句:SQLNET.AUTHENTICATION_SERVICES=(NTS),沒有的話加上
2、檢查登陸windows的使用者(administrator或安裝oracle時候使用的使用者)是不是在包含在ORA_DBA組中,域使用者沒有連上網域服務器時就可能出現這種現象。
3. 要保證 remote_login_passwordfile 參數 = EXCLUSIVE .
4. 看看是否需要使用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資料庫的時候 就是因為口令檔案建立的路徑和名稱不對才遇到這個錯誤
-----end-------