9i(v9.2.0.1)クライアントを搭載したPCから11g(v11.2.0.1.0)のスキーマに接続しようとしています。一部のスキーマには問題なく接続しているようですが、これには対応していません。毎回ORA-01017 Invalid Username/Password
エラーが返されます。
ユーザー名とパスワードは間違いなく正しい-誰もこれが機能しない理由を考えることができますか?
9iと11gの間に根本的な非互換性はありますか?
ユーザーとパスワードは間違いなく間違っています。 Oracle 11gの資格情報では大文字と小文字が区別されます。
ALTER SYSTEM SET SEC_CASE_SENSITIVE_LOGON = FALSE;パスワードを変更します。
http://Oracle-base.com/articles/11g/case-sensitive-passwords-11gr1.php
oracleバージョン12.2.xの場合、ユーザーのPASSWORD_VERSIONSが10gでない場合、SEC_CASE_SENSITIVE_LOGON = FALSEであっても、ユーザーは大文字と小文字を区別しないパスワードを使用してログインできません。
次のSQLは、ユーザーのPASSWORD_VERSIONSを表示する必要があります。
select USERNAME,ACCOUNT_STATUS,PASSWORD_VERSIONS from dba_users;
USERNAME ACCOUNT_STATUS PASSWORD_VERSIONS
--------------- -------------- -----------------
dummyuser OPEN 11G 12C
pASSWORD_VERSIONSを10gと互換性があるようにする
データベースのsqlnet.oraの行を追加/変更して、SQLNET.ALLOWED_LOGON_VERSION_SERVER = 8を再起動し、既存のユーザーのパスワードを変更/失効させる
select USERNAME,ACCOUNT_STATUS,PASSWORD_VERSIONS from dba_users;
USERNAME ACCOUNT_STATUS PASSWORD_VERSIONS
--------------- -------------- -----------------
dummyuser OPEN 10G 11G 12C
私はしばらく前に同様の問題を抱えていました。引用符と二重引用符には注意する必要があります。管理者の資格情報を使用して、ユーザーパスワードをリセットすることをお勧めします。
ALTER USER user_name IDENTIFIED BY new_password;
ただし、両方のパラメーターで二重引用符を使用しないでください。
他のすべてが失敗した場合は、パスワードを同じものにリセットしてみてください。このエラーが発生し、回避することはできませんでしたが、パスワードを同じ値にリセットするだけで問題は解決しました。
同じエラーがありましたただし、接続されていて、スクリプト内の他の以前のステートメントは以前は正常に実行されていました! (したがって、接続は既に開かれており、成功したステートメントの一部はauto-commitモードで正常に実行されました)エラーは数分間再現可能です。それはちょうど消えていた。この時間内に誰かまたは内部のメカニズムが何らかのメンテナンス作業または同様の作業を行ったかどうかはわかりません-多分。
私の環境のいくつかの事実:
sys as sysdba
all_tables
、all_views
から読み取り、selectを別のユーザーに付与する私は専門家ではありません。 Oracle 11gでSQL DeveloperからHRスキーマに接続しようとしているときにORA-01017を取得している場合は、次のようにHRのロックを解除してください。
hr DEFAULT tablespace users temporary tablespace temp account unlockで識別される変更後のユーザーHR;
Sqlplusを使用してOracleデータベースに接続できます。
sqlplus "/as sysdba"
次に、新しいユーザーを作成し、特権を割り当てます。
grant all privileges to dac;
私は同じ問題を抱えていて、ユーザー名とパスワードを二重引用符で囲み、それが機能しました:「TEST」を使用して「opps」で識別されるパブリックデータベースリンク「opps」を作成しました。
Oracle 11 Gおよび12 Cバージョンでは、ユーザー作成中に問題はありませんが、より複雑なパスワードを使用することをお勧めします。パスワードは英数字で、特殊文字を使用する必要があります。
ユーザーのパスワードバージョンとステータスを確認します。
select * from dba_users where username = <user_name>;
11G 12Cの場合、以下のように修正します。
alter user <user_name> identified by Pass2019$;
接続をテストします!
私はこの投稿が11gについてだったことを知っていますが、パスワードを暗号化する方法に関する12cクライアントのバグは、あなたがそれを使用することに決めた場合、このエラーのせいかもしれません:
ALTER SYSTEM SET SEC_CASE_SENSITIVE_LOGON = FALSE
を試してパスワードをリセットしても動作しません)、Oracle_HOME
、PATH
、TNS_ADMIN
)を検証し、TNS_ADMIN
にHKLM\Software\Oracle\KEY_OraClient12Home
レジストリ文字列が配置されていること、すべての基本的なチェック。
修正:レジストリ(regedit)でHKLM\System\CurrentControlSet\Control\Lsa\FIPSAlgorithmPolicy\Enabled
を0
に設定して、FIPSを無効にしてみてください。
Oracle.ManagedDataAccessおよびORA-01017:ユーザー名/パスワードが無効です;ログオンが拒否されました
最近、Oracle 12cで同様の問題が発生しました。小文字のパスワードで新しいユーザーを作成し、データベースサーバーから正常にログインできましたが、すべてのクライアントがORA-01017で失敗しました。修正は最終的には単純であることが判明しました(パスワードを大文字にリセットしました)が、そこにたどり着くのに多くのイライラする努力をしました。
OracleのOTNに関するヒント=接続して許可するときにTOADにパスワードを入力しないでくださいpopupパスワードのダイアログボックス。 そこにパスワードを入力します、それは動作します。パスワードを使用してTOADで何を行ったかはわかりませんが、それは回避策です。 11gの大文字と小文字を区別するパスワードに関係しています。パスワードをすべて大文字に変更すると、TOADでも機能すると思います。 https://community.Oracle.com/thread/908022
プロキシユーザーを介してodp.net経由で接続した場合も、同じSQLエラーメッセージが表示されました。
私のエラーは、ユーザーが引用符(例: "rockerolf")で作成されたため、接続文字列でユーザーをUser Id =\"rockerolf \"として指定する必要があったことです。
最終的に、引用符でユーザーを削除し、なしで新しいユーザーを作成することになりました。
フェイスパーム
クレデンシャルは正しく、他の何かが間違っている可能性があります。 プラグ可能なDB接続文字列をコンテナDBに基づいています。元のparent.example.com
サービス名の代わりに、正しいのはpluggable.example.com
のように見えました。