ORA-01017 は、Oracleデータベースへの接続中に見られる一般的なエラーの1つです。
このエラーについてのドキュメントの内容は次のとおりです
これは、ORA-01017を解決するために実行するチェックリストです:無効なユーザー名/パスワード
(1) ORA-01017の主な問題 エラーは、無効なユーザーIDとパスワードの組み合わせです。正しいパスワードを入力していることを確認する必要があります
ターゲットシステムが11gの場合、パスワードは大文字と小文字を区別できます
システムでパラメータを確認できます
SQL> SHOW PARAMETER SEC_CASE_SENSITIVE_LOGON NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ sec_case_sensitive_logon boolean TRUE SQL>
上記のパラメータがtrueに設定されている場合、大文字と小文字の区別がオンになっています。無効にして、接続を再度確認できます
SQL> ALTER SYSTEM SET SEC_CASE_SENSITIVE_LOGON = FALSE; System altered.
そして接続してみてください。それが機能する場合は、大文字と小文字の区別が問題であることがわかっています。ユーザーのパスワードを変更し、大文字と小文字を区別するパスワードを覚えておくためにどこかに書き込んでから、システムパラメータを再度有効にすることをお勧めします
SQL> ALTER user test identified by TEST1; User altered. SQL> ALTER SYSTEM SET SEC_CASE_SENSITIVE_LOGON = TRUE; System altered.
(2)対象システムのユーザーIDが無効である可能性があります。ユーザーIDがdba_usersビューのユーザー名列として存在するかどうかを確認します。
select username from dba_users where username ='<user name>';
(3)$ORACLE_SIDまたは$TWO_TASK環境パラメータを確認します。 $ ORACLE_SIDが間違ったデータベースに設定されていると、 ORA-01017が発生する可能性があります。 間違ったOracleデータベースに接続しているため、エラーが発生します。
(4)tnsnames.oraをチェックして、TNSサービスが正しいデータベースを指していることを確認します。 tnspingコマンドを使用して、それも確認できます
TNS Ping Utility for Linux: Version 11.2.0.4.0 - Production on 22-JUNE-2016 23:01:06 Copyright (c) 1997, 2014, Oracle. All rights reserved. Used parameter files: /oracle/product/11.2.0.4/network/admin/sqlnet.ora Used TNSNAMES adapter to resolve the alias Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = techgoeasy.com)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = TEST))) OK (0 msec)
(5)Dataguard環境およびスタンバイ環境でもORA-01017エラーが発生する場合があります
SYSユーザーパスワードがプライマリ側とスタンバイ側の両方で同じであることを確認してください。プライマリ側とスタンバイ側の両方で同じパスワードを持つorapwdを使用してOracleパスワードファイルを作成します
Oracleデータベース12cでは、プライマリRACデータベースの場合、共有場所にパスワードファイルが必要です
orapwd file='+DATA/TEST/PASSWORDFILE/oraTEST' entries=10 dbuniquename=TEST password=<sys pass>
(6)場合によっては、エラーの他の理由が考えられ、ORA-01017は誤解を招くエラーです。
trussまたはtraceコマンドを使用してコールスタックをトレースできます
Linux: strace -o /tmp/strace_user.output -cfT sqlplus Scott/[email protected] AIX, Solaris: truss -fea -o /tmp/truss_user.output sqlplus scott/[email protected] HP-UX: tusc -afpo /tmp/tusc_user.output -aef sqlplus scott/[email protected]
(7)このエラーは、RMANのアクティブな複製中にも発生する可能性があります
Cause The SYS password is not the same between the original/source database and auxiliary/duplicate database. SOLUTION Perform the following steps: 1) Copy the password file from the original/source database to the auxiliary/duplicate database. 2) Run the following OS command "cksum" to check whether the password files are the same on both the original/source database and auxiliary/duplicate database. cksum {password_file_name}
(8) 大文字と小文字を区別しないパスワードとORA-1017無効なユーザー名またはパスワード
Oracle Database 12cリリース2(12.2)のデフォルトの認証プロトコルは12(排他モード)です。このプロトコルでは、認証に大文字と小文字を区別するパスワードが必要です。以前のリリースのパスワードバージョンを使用している場合は、オプションを確認してください。
Oracle Database 12cリリース2(12.2)以降、SQLNET.ORAパラメータALLOWED_LOGON_VERSION_SERVERのデフォルト値が12に変更されました。このパラメータは、Oracle Databaseリリースではなく、サーバーで使用されるログオン認証プロトコルを参照します。
デフォルトでは、Oracleは大文字と小文字を区別しないパスワードベースの認証をサポートしなくなりました。新しいパスワードバージョン(11Gおよび12C)のみが許可されます。大文字と小文字を区別しない10Gパスワードバージョンは生成されなくなりました。
10Gパスワードバージョンを必要とするアカウントがある場合、そのパスワードバージョンを使用するアカウントがデータベースからロックアウトされないようにするために、排他モードからより寛容な認証プロトコルに変更できます。
パスワードのバージョンは次のように確認できます
select username,password_version from dba_users;
管理者としてログインします。
SQLNET.ORAファイルを編集して、SQLNET.ALLOWED_LOGON_VERSION_SERVER設定をデフォルトの12から11以下に変更します。例:
SQLNET.ALLOWED_LOGON_VERSION_SERVER=11
(9)ORA-01017「sqlplus/assysdba」を使用
これは、上記のコマンドを使用しようとしているOSユーザーがdbaグループのメンバーではない場合に発生する可能性があります。
OSユーザーがDBAグループに属していることを確認してください。
また、sqlnet.oraも確認してください。sqlnet.authentication_services=noneがある場合は、このエラーが発生する可能性もあります
ORA-01017無効なユーザー名/パスワードのコンテンツを気に入っていただければ幸いです
関連記事
ORA-00911:この投稿はORA-00911の一般的な原因に関するものです:ジョブを完了するのに役立つ例と解決策を含むOracleの無効な文字
ORA-29913:ora-などのORAエラーのトラブルシューティングのヒント29913:odciexttableopenコールアウトの実行エラー、ora-29913:odciexttablefetchコールアウトの実行エラー
ORA-00257:ORA-00257アーカイバエラーのトラブルシューティング方法を学習します。内部のみのエラーを接続します。さまざまな解決策と例が段階的に提供されます。
値で識別されるユーザーの変更:データベースに保存されているOracleパスワード、アルゴリズム、ユーザーの変更を使用してOracleパスワードを変更せずにユーザーとしてログインする方法について学習します。値で識別
ORA-28000:ORA-28000アカウントがロックされていることは非常に一般的なエラーです。問題なく簡単にステップバイステップで解決する方法については、この投稿を確認してください
ORA-00904:ORA-00904の説明と可能な解決策についてのこの投稿:無効な識別子。トラブルシューティングのヒントも提供されています
ORA -28002:ORAを解決する方法に関するこの投稿-28002パスワードの有効期限が切れます。新しいプロファイルを作成することで、これを完全に回避するためにできること
Oracle12.2ドキュメント