LoginSignup
3
4

More than 3 years have passed since last update.

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

Posted at

背景

新規案件で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サーバーにログインできました!!

3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4