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 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 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 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 > Oracle
から2つのキーを見つけることができます。
KEY_OraClient11g_home1
KEY_OraDb11g_home1
そして、それらのキーの下にOracle_HOME
変数があります。したがって、クライアントのインストールでもOracle_HOME
が生成されたようで、2つのOracle_HOME
sができました。これがこの問題と関係があるかどうかわかりませんか?
Windowsマシンでこのエラーを解決するにはどうすればよいですか?
問題は、Oracle ClientのインストールがOracle Serverのインストール前のシステムPATHにあることです(実際、クライアントをインストールする前に機能したことについても言及しています)。
次のように実行します。
混乱を招くだけなので、Oracle Clientを削除します。アンインストールオプションを使用しますが、その後、ディレクトリとOracleクライアントレジストリキーがなくなっていることを確認し、必要に応じて手動で削除します。
(パスにOracleクライアントのホームを置くことでこれを機能させることは可能ですafterサーバーのホームですが、単一のインストールだけの方がはるかに簡単です。Oracleサーバーのインストールには、完全なOracleクライアントがすでに含まれています)。
サーバーのホームへのパスがPATHに含まれていることを確認してください。そして、他のOracleホームはパスにありません。
アカウントがORA_DBAグループにあることを確認してください。特にドメインを使用している場合は、これを再確認してください。
他のすべてが失敗した場合は、sqlnet.oraからSQLNET.AUTHENTICATION_SERVICES=(NTS)
を削除できます。これにより、パスワード認証の使用が強制されるためです。
私のラップトップには10gと11gの両方がインストールされていますが、最近ではOBIEEクライアントもインストールされています。以前はsysdbとして11gインスタンスにログインできましたが、今朝は次のようになりました。
SQL> conn / as sysdba
ERROR:
ORA-01031: insufficient privileges
私は次のようにして問題を解決しました:
tnsping orcl
で機能することを確認してください。その後set Oracle_SID=orcl
sqlplus sys/"passwd"@orcl as sysdba
お役に立てれば。