Fedora 19 に SQL*Plus 12.1 をインストールして、Oracle 11g データベースに接続しようとしています。ここから Instantclient RPM パッケージ (basic、devel、sqlplus) をインストールしました。SQL*Plus を使用して他の Oracle データベースに正常に接続できるので、ソフトウェアが正常にインストールされていることがわかります。ただし、この特定のデータベースに接続しようとすると、次のエラーが発生します。
ERROR:
ORA-01017: invalid username/password; logon denied
これが私の tnsnames.ora ファイルです(ホストとポートは難読化されています):
PSPRODDB =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = #HOST-ADDR)(PORT = #PORT-NUM))
)
(CONNECT_DATA =
(SERVICE_NAME = PSPRODDB)
)
)
私の TNS_ADMIN 環境変数は、私の tnsnames.ora ファイルのパスに設定されています。
接続するために実行しているコマンド:
sqlplus username/password@PSPRODDB
Enterキーを押した後、ORA-01017エラーが発生する前に、バージョンと著作権情報で約2〜3秒間ハングします。
データベースに正常に接続する別のアプリケーションからコピーして貼り付けたので、ユーザー名とパスワードを正しく入力したことはわかっています。
編集
log.xml ファイル ( 内C:\oracle\product\11.2.0\diag\tnslsnr\test\listener\alert\log.xml
) を調べたところ、正しいリスナーと話していることを示すエントリがいくつかあることがわかりました。ログ エントリの例を次に示しますが、機密情報の可能性があるため難読化されています。
<msg time='2013-11-25T09:54:08.530-07:00' org_id='oracle' comp_id='tnslsnr'
type='UNKNOWN' level='16' host_id='PSTEST100-50'
host_addr='*my address*'>
<txt>25-NOV-2013 09:54:08 * (CONNECT_DATA=(SERVICE_NAME=PSPRODDB)(CID=(PROGRAM=sqlplus)(HOST=*localhost*)(USER=njones))) * (ADDRESS=(PROTOCOL=tcp)(HOST=*addr*)(PORT=38906)) * establish * PSPRODDB * 0
</txt>
</msg>
また、 tnsnames.ora ファイルの *SERVICE_NAME* 要素をSIDに変更しようとしましたが、違いはありませんでした。
パスワードを引用符で囲んでも、問題は解決しませんでした。
バージョンに問題がある可能性はありますか?InstantClient と sqlplus バージョン 12.1 を使用していますが、データベースはバージョン 11.2 です。
編集 2
さて、公式です。私はばかです、そしてそれがエラーの原因です。間違ったパスワードを入力していました。コピーして貼り付けていたものも間違っていたと思います。