説明できないOracle 11.2へのリモートsqlplusログインの奇妙な動作があります。
1)仮想ホストで実行されているOracle 11.2サーバーがあります。
2)別のVMをセットアップしました。たとえば、最小インストールISOから構築されたOracle-instantclient 11.2.0.4 64ビットでHost2(CentOS 6.5 x86_64)を使用します
3)CentOS 6.5 x86_64 VM=イメージがすべてインストールされたデスクトップインストール)もダウンロードしました。たとえば、同じOracleインスタントクライアントをインストールしたHost3と言います。
Host2とHost3の両方で同じ環境とtnsnames.oraファイルを使用しています。
MONSTER=
(DESCRIPTION=
(ADDRESS=(PROTOCOL=TCP)(Host=host1)(PORT=1521))
(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=CRM)))
問題:
Host2では、ORA-01017エラーを取り除くことができません。
Host2> sqlplus sys/<passwd>@monster as sysdba
SQL*Plus: Release 11.2.0.4.0 Production on Fri Aug 1 12:09:51 2014
Copyright (c) 1982, 2013, Oracle. All rights reserved.
ERROR:
ORA-01017: invalid username/password; logon denied
しかし、Host3では、すべてが正常です。
Host3> sqlplus sys/<passwd>@monster as sysdba
SQL*Plus: Release 11.2.0.4.0 Production on Fri Aug 1 06:21:59 2014
Copyright (c) 1982, 2013, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release ...
SQL>
あるホストからの接続がOKであるのに、他のホストからの接続がKOである理由を誰かが知っていますか?
NB:言うまでもなく、これは大文字と小文字の区別、orapwdの問題、またはremote_login_passwordfileがEXCLUSIVEに設定されていない問題ではありません。これは、Host3から機能するためです。
ありがとう
私は解決策を見つけました:
マシンのホスト名が/ etc/sysconfig/networkで定義されている場合、この名前も/ etc/hosts、periodで定義する必要があります。
これは私が持っていたものです:
Host2> cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=Host2
Host2> cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.2.8 Host1
Sqlplusの問題を修正するには、/ etc/hostsを次のように変更します。
Host2> cat /etc/hosts
127.0.0.1 Host2 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 Host2 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.2.8 Host1
または、/ etc/sysconfig/networkを次のように変更します。
Host2> cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=localdomain.localhost
結論として、ORA-01017エラーメッセージは誤解を招くだけでした。
最初に、データベースホストがping Host1
であることを確認します。
次に、クライアントをインストールし、サービス名を構成する必要があります。
Oracleクライアントを正しくインストールして使用できるようにするには、次のことを行う必要があります。
tnsping
を実行します YOUR_SERVICE_NAME
CONNECTION_NAME
(訂正してくれてありがとう@vapcguy)-tnsping
は管理者用インストールに含まれているツールです)。sqlplus sys/passwd@<YOUR_SERVICE_NAME> as sysdba
またはsqlplus sys/passwd@Host1:PORT/<DATABASE_SERVICE_NAME>
を実行します私自身も同様の問題がありましたが、私のアプリはVisual Studioから接続できましたが、サーバーに公開したときは接続できませんでした。 zaratustraの投稿は役に立ちましたが、ここでは何も解決しませんでしたが、自分の投稿にリンクすると思いました- ORA-01017:invalid username/password; logon denied -これらのトラブルシューティング方法を示すために-または、少なくとも、あきらめて質問を投稿する前の方法です。
私の解決策は、レジストリエントリを変更することでした:HKLM\System\CurrentControlSet\Control\Lsa\FIPSAlgorithmPolicy\Enabled
から1
から0
。
12cクライアントにはバグがあり、パスワードをサーバーに送信するための暗号化アルゴリズムがFIPSに準拠していないため、そこに到達することはありません。確かに、これは11gクライアントでしたが、これを見て、12cクライアントがあり、ここで与えられた他の修正が彼らのために機能しない場合、将来誰かを助けるかもしれません。