Sqlplusが問題なくログインしているときに、OS認証(4.1.3 32/64ビット)を使用したSQL Developerの奇妙な動作でORA-01017が発生します。
これはsqlplusが私に与える答えの例です:
~ sqlplus /@XXXX
SQL*Plus: Release 11.2.0.1.0 Production on Wed Jul 27 08:50:10 2016
Copyright (c) 1982, 2010, Oracle. All rights reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL>
その後、実行中SELECT user FROM DUAL;
ドメインユーザーを返します。
これは、データベース->詳細設定で構成されたSQL開発者から取得したものです。
示されているように、Status : Failure -Test failed: ORA-01017: invalid username/password; logon denied
接続セクションから接続しようとすると、もう少し詳細なエラーが発生します。
An error was encountered performing the requested operation:
ORA-01017: invalid username/password; logon denied
01017. 00000 - "invalid username/password; logon denied"
*Cause:
*Action:
Vendor code 1017
任意のアイデアや助けを事前にありがとう
問題は、自分のマシン(1つのOracleクライアント 'x86')にインスタントクライアントとOracleクライアントが多すぎるということでした。
インスタントクライアントは古すぎました。
私にとって唯一有効なインスタントクライアントは「12.1.0.2.0」です。
私がダウンロードしました:
インスタントクライアント'12 .1.0.2.0 'を抽出して他のすべてを削除したパスを使用して、PATH
変数を修正しました。
最後に、TNS_ADMIN
とsqlnet.ora
を指す環境変数tnsnames.ora
を設定しました。これはTNS_ADMIN
は必要ないと思います。
Oracle Sql開発者とsqlplusは、OS認証をまったく異なる方法で処理します。
SQL開発者は、常にユーザー名「\」に置き換えて認証を試みます。 SLQPLUSはユーザー名のみを置き換えます。ユーザー名にドメインを追加するとき。 OSAUTH_PREFIX_DOMAIN = TRUE
(Windowsレジストリ)。 Sqlplusはドメイン名を名前に追加します。
SQL開発者は常に、ドメイン名なしでユーザー名「\」に置き換えることで認証を試みます。
CREATE USER "OPS$Oracle.ADMIN" IDENTIFIED EXTERNALLY
PROFILE DEFAULT
DEFAULT TABLESPACE tablespace_Oracle_admin
TEMPORARY TABLESPACE TEMP
QUOTA UNLIMITED ON tablespace_Oracle_admin
ACCOUNT UNLOCK ;
C:\ ORA\DB\product\11.2.0\dbhome_1\bin\sqlplus/SQL>デュアルからユーザーを選択; USER _______________________ OPS $ Oracle.ADMIN
SQL開発者からデータベースに接続するには、パスワードを指定せずにユーザー名の代わりに「/」記号を配置する必要があります。
ユーザーをデュアルから選択します; USER _______________________ OPS $ Oracle.ADMIN
CREATE USER "OPS$\Oracle.ADMIN" IDENTIFIED EXTERNALLY
PROFILE DEFAULT
DEFAULT TABLESPACE tablespace_Oracle_admin
TEMPORARY TABLESPACE TEMP
QUOTA UNLIMITED ON tablespace_Oracle_admin
ACCOUNT UNLOCK ;
SQL開発者を使用して接続すると、OS認証が機能します!!!!
ユーザーをデュアルから選択; USER ____________________ OPS $\Oracle.ADMIN
実際に同様の問題が発生しました。データベースサーバーにログインできましたが、エラーORA-01017
を受け取りました。パスワードを変更しましたが、うまくいきました。
Oracle SQL開発者をインストールしてシステム接続を作成しようとすると、同じエラーメッセージが表示されました。
これは、OracleXEのインストール時に設定したパスワードとは異なるパスワードを入力したことが原因でした。
正しいパスワードを入力して解決しました。
パスワードを忘れた場合は、OracleXEをアンインストールして再インストールする必要があります。
コマンドプロンプトsql plus plusに移動し、パスワードを変更します。コマンド:connect [ユーザー名]/[パスワード]
その後、新しいパスワードを入力するように求められます新しいパスワードとwhoooを入力してください!!!あなたは終わった。