Database Support Blog

  • Oracle Database
2017.12.14

Oracle Database 12cR2へのアップグレード後に発生するORA-01017

Oracle Database 12cR2へのアップグレード後に発生するORA-01017

Oracle Database 12cR2へのアップグレード後に発生するORA-01017

この記事は JPOUG Advent Calendar 2017 の14日目のエントリです。

2017年の3月にオンプレミス版がリリースされて以降、弊社サポートセンターにも徐々にOracle Database 12cR2環境のお問合わせが増えてきました。

新しいバージョンには新たに追加されたパラメータやデフォルト値が変更されたパラメータがあり、変更に起因したトラブルが発生することもあります。

今回は12cR2へのアップグレード後のお客様からお問い合わせをいただくことの多かった(2017年12月1日現在で約30件)、12cR2環境での「ORA-01017: ユーザー名/ パスワードが無効です。」のエラーについてご紹介します。

SEC_CASE_SENSITIVE_LOGONの設定値に注意

SEC_CASE_SENSITIVE_LOGONはOracle Database 11gR1から追加されたパラメータで、ログイン時に入力するパスワードの大文字/小文字を区別させることができます。デフォルト値はOracle Database 11gR1で追加された時点でTRUE(区別する)です。

▲SEC_CASE_SENSITIVE_LOGONによるパスワードの大/小文字制御
Database Version 大文字/小文字の区別 区別の制御
10gR2 以前 されない できない
11gR1 以降 される(デフォルト=TRUE) できる
12cR1 以降 される(デフォルト=TRUE) できる(非推奨)

12cR1からこのパラメータの使用(明示的にFALSEに変更すること)は非推奨ですが、特に10g以前からアップグレードされた環境では従来通りの動作を踏襲させるため、このパラメータをFALSE(区別しない)に設定されているケースが多く見られます。

SEC_CASE_SENSITIVE_LOGONは非推奨となりましたが、使用禁止ではないため12cR2でもFALSEに変更することは可能です。ただし、その場合SQLNET.ORAのパラメータSQLNET.ALLOWED_LOGON_VERSION_SERVERも考慮する必要があります。

SQLNET.ALLOWED_LOGON_VERSION_SERVERのデフォルト値が"12"に変更

Oracle Database 12cR2からデフォルト値が変更されたパラメータの中にsqlnet.oraに設定可能な SQLNET.ALLOWED_LOGON_VERSION_SERVER があります。SQLNET.ALLOWED_LOGON_VERSION_SERVERは端的に言うとOracle Databaseに接続する際に許容するパスワード・バージョンの範囲を決めるパラメータです。

Oracle Database 12cR2ではデフォルト値が"12"であり、大文字/小文字を区別する11gおよび12cのパスワードバージョンのみ使用可能な設定です。

そのため、初期化パラメータSEC_CASE_SENSITIVE_LOGONがFALSE(区別しない)に設定されている場合は、たとえユーザ名/パスワードに正しい値を入力していても「ORA-01017: ユーザー名/ パスワードが無効です。」が発生し接続に失敗します。

対処方法

これらのパラメータに起因して発生したORA-01017エラーは以下いずれかで回避可能です。

・SEC_CASE_SENSITIVE_LOGON=TRUE、SQLNET.ALLOWED_LOGON_VERSION_SERVER=12で運用
 セキュリティ上の推奨は大文字/小文字を区別しての運用です。SEC_CASE_SENSITIVE_LOGONがFALSEの場合はTRUEに変更し、大文字/小文字を区別したパスワードバージョンで再設定します。※手順は アップグレード・ガイド を参照

・SEC_CASE_SENSITIVE_LOGON=FALSE、SQLNET. ALLOWED_LOGON_VERSION_SERVER=11以下で運用
 大文字/小文字を区別せずに運用させたい場合は、SQLNET.ALLOWED_LOGON_VERSION_SERVERを11以下に設定します。$ORACLE_HOME/network/admin/sqlnet.oraにSQLNET.ALLOWED_LOGON_VERSION_SERVER=<N>を追記し、大文字/小文字を区別しないパスワードバージョンで再設定します。

 この場合、データベースの起動時に非推奨の初期化パラメータを利用していることを表すORA-32004が発生しますが、起動に影響はありません。

まとめ

今回ご紹介したSEC_CASE_SENSITIVE_LOGONは12cR2では非推奨となりましたが利用は可能です。ただし、今後のリリースでは使用できなくなる可能性もあるため、アップグレードのタイミングで大文字/小文字を区別した運用に切り替え(新しいパスワードバージョンで再設定)をお奨めします。

また、Oracle Database 12.2への接続は11.2.0.3以降のクライアントが保証されていますので、移行の際にはこの点も注意が必要です。

なお、アップグレード・ガイドにはアップグレード前の 事前チェック項目 変更点 が記載されており、SEC_CASE_SENSITIVE_LOGON/SQLNET.ALLOWED_LOGON_VERSION_SERVERも含まれています。

今回ご紹介した内容以外にも注意点が記載されておりますので、未然に問題を防ぐため、アップグレードを検討される際にはアップグレード・ガイドをご一読ください。


JPOUG Advent Calender執筆記事

2021年 18日目
Oracle Databaseのサポート対応で依頼することの多いファイルとコマンド
https://www.ashisuto.co.jp/db_blog/article/jpoug-oracledb-logfiles-command.html

2020年 17日目
Oracle Databaseバージョンアップ後の性能劣化で試したい暫定対処
https://www.ashisuto.co.jp/db_blog/article/jpoug-vup-temp-solution.html

2019年 24日目
【Oracle Database】DMLリダイレクションで一歩進んだ Active Data Guard の使い方(19c新機能)
https://www.ashisuto.co.jp/db_blog/article/20191224_ADG_REDIRECT_DML.html

2019年 20日目
【Oracle Database Cloud】"超"現実的に考える!Oracle CloudへのDB移行ガイド
https://www.ashisuto.co.jp/db_blog/article/20191220_cloud.html

2016年 9日目
【Oracle Database】2016年にサポートにお問い合わせをいただいたORAエラー TOP5
https://www.ashisuto.co.jp/db_blog/article/2016_oerr_rank.html

2015年 15日目
パフォーマンスダウンを「再現待ち」にしないための準備
https://www.ashisuto.co.jp/db_blog/article/20151215_oracle_pfmdwn.html

大野 高志

サービス事業部 サポートセンター

2007年にアシスト入社後、Oracle Databaseのサポート業務に従事。現在はサポート業務の傍ら、未解決のトラブルを一つでも多く減らせるよう、サポートセンターに蓄積されているノウハウを社内外に伝える活動を行っている。


■本記事の内容について
 本記事に示した定義及び条件は変更される場合があります。あらかじめご了承ください。

■商標に関して
 ・Oracle®、Java、MySQL及びNetSuiteは、Oracle、その子会社及び関連会社の米国及びその他の国における登録商標です。
 ・Amazon Web Services、AWS、Powered by AWS ロゴ、[およびかかる資料で使用されるその他の AWS 商標] は、Amazon.com, Inc. またはその関連会社の商標です。
  文中の社名、商品名等は各社の商標または登録商標である場合があります。

関連している記事

  • Oracle Cloud
  • Oracle Database
2024.07.19

Oracle Cloud Shellで簡単にOCIのComputeへシリアルコンソール接続する方法!

Oracle Cloudで構築したComputeインスタンスは、ハードウェア等インフラ周りはオラクル社が管理しますが、OSやアプリケーションはお客様が管理する必要があります。今回は、事前準備不要で簡単に操作可能なCloud Shellによるコンソール接続をご紹介します。

  • Oracle Database
2024.07.16

Oracle Database 23ai新機能!DBセキュリティ対策に効果を発揮するSQLファイアウォール!

Oracle Database 23aiの新機能であるSQLファイアウォールはSQLインジェクションなど不正なSQLを検知/ブロックすることができます。

  • Oracle Database
  • Oracle Cloud
  • AWS
2024.07.09

Oracle Databaseライセンスの定義とルールを正しく理解する ~第4回:クラウド編~

今回はOracle Databaseライセンス「クラウド環境編」です。これまでエディション、ライセンスの種類、カウントの方法、という基本的な部分と、構成面の理解として仮想化環境の考え方をご紹介してきました。今回はクラウド環境におけるOracle Databaseライセンスの定義やルールを解説します。

ページの先頭へ戻る