Oracle Databaseでtnspingは通るのにORA-12154が出力される

職場の同僚から以下のコマンドでログインしようとすると、ORA-12154が出力されてログインできないため何とかしてくれと言われ、地味にハマったので残しておきます。
ちなみに同僚はOracleは詳しくありません。

$ sqlplus SYSTEM@ORCL
Passowrd: ※パスワードを入力する

ORA-12154: TNS:could not resolve the connect identifier specified
目次

とりあえず設定や状況を見てみた

ざっと切り分けしましたが、特段おかしなところは無さそうでした。
listener.oraやtnsnames.oraも問題なさそうだし、lsnrctl statusの結果でもインスタンス名でREADYになっているし、なによりtnsping ORCLはOKになります。
ちなみにsqlplus / as sysdbaでは問題なくログインできました。

さっぱりわからないと思いつつ、他の人の解決事例をインターネットで調べていると、英語の質問フォーラムへの回答にちらりとユーザのパスワードに@を使わない方がいいと書いていました。
これを見て閃きました。

パスワードに@を使っていた

実はこのSYSTEMユーザのパスワードに@が入っていました。
イメージとしては以下のような感じ。

$ sqlplus SYSTEM@ORCL
Passowrd: 123@test ←コレ

ORA-12154: TNS:could not resolve the connect identifier specified 

動作としては、パスワードの中の@以降を接続識別子として認識してしまって、それで名前解決できないよと言ってるようにみえますが、深追いはしません。
試しに個人環境でも試してみたら再現しました。

最後に

ということでOracleユーザのパスワードには@を使わない方が無難ということでしょうか。
マニュアル見ると@は普通にパスワードとして使えるし、今回のような注意書きは見当たりませんでしたが。

それでは。

  • URLをコピーしました!

コメント

コメントする

目次