1. 程式人生 > 實用技巧 >[Oracle] sqlplus / as sysdba ora-01031 insufficient privileges

[Oracle] sqlplus / as sysdba ora-01031 insufficient privileges

一. 問題描述

今天在新機子(WINDOWS)上搭建Oracle環境,完了之後通過SQL*PLUS本地登入時報錯:

ora-01031 insufficient privileges ——-許可權不足

二. 解決過程

錯誤排除

1. 當時首先想到的是oracle不允許用sqlplus工具登入,但隨即想法打消

sqlplus sys/admin as sysdba   --成功登入!

2. 帶詳細資訊指定本機IP和例項登入

sqlplus sys/admin@127.0.0.1:1521/ORCL as sysdba  --成功登入!

3. 用PLSQL developer登入也成功

猜測:以上幾種登入方式均屬於Oracle密碼登入方式,而 / as sysdba是以作業系統方式登入到Oracle的

錯誤定位

用作業系統本地登入時出現錯誤,極有可能是因為當前windows使用者不在Oracle准許登入的使用者組內。

解決辦法

1. 用命令開啟windows使用者組管理,把安裝Oracle的使用者新增到ORA_DBA使用者組裡(Liunx系統此使用者組名稱不一樣)

compmgmt.msc

2. 開啟$ORACLE_HOME/NETWORK/ADMIN/sqlnet.ora

確保SQLNET.AUTHENTICATION_SERVICES= (NTS) -- 允許本地登入

3. 重啟電腦(為了更新並應用剛修改的使用者組)

4. 測試

C:\Users\Jan>sqlplus / as sysdba
 
SQL*Plus: Release 11.2.0.1.0 Production on Mon Dec 14 22:12:29 2015
 
Copyright (c) 1982, 2010, Oracle.  All rights reserved.
 
Connected.

三. 結果總結

利用 sqlplus / as sysdba 本機登入必備兩個條件

1. 當前使用者在Oracle dba的使用者群組內

2.sqlnet.ora檔案引數SQLNET.AUTHENTICATION_SERVICES= (NTS)