職場の同僚から以下のコマンドでログインしようとすると、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ユーザのパスワードには@を使わない方が無難ということでしょうか。
マニュアル見ると@は普通にパスワードとして使えるし、今回のような注意書きは見当たりませんでしたが。
それでは。
コメント