Help us understand the problem. What is going on with this article?

oracle12cへログインする時出たOra-28040とora-01017の対応

背景

新規案件でOracle12cのデータベースをインフラチーム構築してもらった。
同じタイミングで構築されたAPサーバー(Oracle Client12c)からOracle12Cにログインできたが、いつも使う作業PCからだと以下のエラーが出た。

ORA-28040: 一致する認証プロトコルがありません

調べた結果、作業PCはOracleClient11gのため、バージョンの不一致は原因でした。
DBサーバー側にあるsqlnet.oraに以下の設定を追加した。

SQLNET.ALLOWED_LOGON_VERSION=11

が、作業PCからログインしてみると、また以下のエラーが出てログインできなかった。

ORA-01017: ユーザー名/ パスワードが無効です。ログオンは拒否されました。

対応

ORA-28040の調査&対応

参考:
https://logic.edchen.org/ora-28040-%E4%B8%80%E8%87%B4%E3%81%99%E3%82%8B%E8%AA%8D%E8%A8%BC%E3%83%97%E3%83%AD%E3%83%88%E3%82%B3%E3%83%AB%E3%81%8C%E3%81%82%E3%82%8A%E3%81%BE%E3%81%9B%E3%82%93%E3%81%AE%E8%A7%A3%E6%B1%BA%E6%96%B9/

11gのクライアントのログインを許可するように、 DBサーバー側にあるsqlnet.oraに以下の設定を追加した。

SQLNET.ALLOWED_LOGON_VERSION=11

再度ログインすると、以下のエラーが出た!

ORA-01017: ユーザー名/ パスワードが無効です。ログオンは拒否されました。

ORA-01017の調査&対応

参考:
https://stackoverflow.com/questions/41083540/i-cant-login-to-oracle-system-account/45341949#45341949

まずログインユーザのパスワードを確認。

select DBA_USERS.PASSWORD_VERSIONS from DBA_USERS where USERNAME='ログインユーザ';

PASSWORD_VERSIONS
----------------------------------
12C

12Cのため、11gも対応するようにユーザのパスワードを一回変更してみないといけないそうです。

パスワード変更:

SQL> ALTER USER パスワード IDENTIFIED BY "ログインユーザ";

ユーザーが変更されました。

ログインユーザのパスワードを再確認

select DBA_USERS.PASSWORD_VERSIONS from DBA_USERS where USERNAME='ログインユーザ';

PASSWORD_VERSIONS
----------------------------------
11G 12C

これで作業PCから新しく構築したOracle12CのDBサーバーにログインできました!!

lzs0627
プレゼン能力がずっと足りないと意識しています。 少しでもいいから上達したい。 なので、これからドキュメントを書くように頑張ります。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away