ORA-01031の解決方法:Windowsインストールでの権限不足エラー


12

Windows 2008 R2サーバーにOracle 11Gをインストールしました。また、別のインストールメディアを使用してOracleクライアントライブラリをインストールしました。クライアントのインストール後、次を使用してデータベースにログインしようとすると:

C:\>sqlplus / as sysdba

次のエラーが発生します。

ORA-01031:権限が不十分です

これはクライアントのインストール前に機能しました。私のアカウントはORA_DBAグループにあります。私のアカウントもAdministratorグループに属しています。ORACLE_SID環境変数リストに設定していません。それはする必要がありますか?これはクライアントのインストール前に機能しましたが、その時点ではその変数もありませんでした。

UACは最低レベルでオンになっており、私は常にcmd管理者として実行しています。

私が持っているsqlnet.oraフォルダ内にこのようなファイルを:

C:\app\myaccount\product\11.2.0\dbhome_1\NETWORK\ADMIN

sqlnet.ora

# sqlnet.ora Network Configuration File: C:\app\myaccount\product\11.2.0\dbhome_1\network\admin\sqlnet.ora
# Generated by Oracle configuration tools.

# This file is actually generated by netca. But if customers choose to 
# install "Software Only", this file wont exist and without the native 
# authentication, they will not be able to connect to the database on NT.

SQLNET.AUTHENTICATION_SERVICES= (NTS)

NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)

tnsnames.ora

# tnsnames.ora Network Configuration File: C:\app\myaccount\product\11.2.0\dbhome_1\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.

LISTENER_ORCL =
  (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))


ORACLR_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
    (CONNECT_DATA =
      (SID = CLRExtProc)
      (PRESENTATION = RO)
    )
  )

ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl.mydb.com)
    )
  )

listener.ora

# listener.ora Network Configuration File: C:\app\myaccount\product\11.2.0\dbhome_1\network\admin\listener.ora
# Generated by Oracle configuration tools.

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = CLRExtProc)
      (ORACLE_HOME = C:\app\myaccount\product\11.2.0\dbhome_1)
      (PROGRAM = extproc)
      (ENVS = "EXTPROC_DLLS=ONLY:C:\app\myaccount\product\11.2.0\dbhome_1\bin\oraclr11.dll")
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    )
  )

ADR_BASE_LISTENER = C:\app\myaccount

Windowsレジストリから(regeditを使用)、パスからComputer > HKEY_LOCAL_MACHINE > SOFTWARE > Wow6432Node > ORACLE2つのキーを見つけることができます。

KEY_OraClient11g_home1
KEY_OraDb11g_home1

そして、それらのキーの下でORACLE_HOME変数を見つけることができます。そのため、クライアントのインストールによっても生成されたように見えるORACLE_HOMEので、今では2つありORACLE_HOMEます。これがこの問題と関係があるかどうかわかりませんか?

Windowsマシンでこのエラーを解決するにはどうすればよいですか?

回答:


7

問題は、Oracle ClientのインストールがOracle Serverのインストール前のシステムPATHにあることです(実際、クライアントをインストールする前に機能したことについても言及しています)。

次のように実行します。

  1. 混乱を招くだけなので、Oracle Clientを削除します。アンインストールオプションを使用しますが、その後、ディレクトリとOracleクライアントレジストリキーがなくなっていることを確認し、必要に応じて手動で削除します。

    (Oracleクライアントのホームをサーバーホームののパス置くことでこれを機能させることは可能ですが、単一のインストールだけを行う方がはるかに簡単です。Oracleサーバーのインストールには、完全なOracleクライアントがすでに含まれています)。

  2. サーバーのホームへのパスがPATHに含まれていることを確認してください。そして、他のOracleホームはパスにありません。

  3. アカウントがORA_DBAグループにあることを確認してください。特にドメインを使用している場合は、これを再確認してください。

  4. 他のすべてが失敗した場合は、SQLNET.AUTHENTICATION_SERVICES=(NTS)パスワード認証を使用する必要があるため、sqlnet.oraから削除できます。


PATHでクライアントビンの前にOracleXEビンを配置するのに
役立ち

私の問題は、NTSではなくSQLNET.AUTHENTICATION_SERVICES =(NONE)でした
jcho360

0

私のラップトップには10gと11gの両方がインストールされていますが、最近ではOBIEEクライアントもインストールされています。以前はsysdbとして11gインスタンスにログインできましたが、今朝は次のようになりました。

SQL> conn / as sysdba
ERROR:
ORA-01031: insufficient privileges

次のようにして問題を解決しました:

  1. 起動db&リスナー;
  2. tnsnameがによって機能することを確認してくださいtnsping orcl。その後
  3. set ORACLE_SID=orcl
  4. sqlplus sys/"passwd"@orcl as sysdba

お役に立てれば。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.