web-dev-qa-db-ja.com

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

他にも同様の質問がありましたが、私が立ち上がったC#.NET Webサイトを使用して接続できない理由を私に教えてくれるものはありませんでした。このフォーラムは、DBAがツールを使用してデータベースに接続するためのものであり、接続するトラブルシューティングアプリはそれほど多くないことを知っていますが、ここに質問を投稿することをお勧めします。

Webサイトは、Visual Studioから実行するとワークステーションから機能/接続しますが、サーバーに公開すると、同じアカウント/パスワードで他のすべてのものを介して接続できますが、ORA-01017: invalid username/password;logon deniedエラーが発生します。状況:

  1. Oracle SQL Developer、SQL * Plusを使用して、使用しているアカウントに接続できます。「myaccount」と呼びましょう。
  2. Net Managerを使用して、「サービスの命名」を展開し、tnsnames.oraのエントリーを表示できます。
    a。 tnsnames.ora/Service Naming領域に存在するのと同じ文字列が、アプリケーションにハードコードされた文字列として存在しますが、渡されるホスト名、サービス名、ポート、ユーザー名、パスワードなどは例外です。私のweb.configからパラメータとして入力します。
    b。接続名をクリックすると、すべてが正しく表示され、[テストサービス]> [ログインの変更]をクリックし、[myaccount]とパスワードを入力し、[OK]をクリックし、[テスト]をクリックすると成功します。
    c。 web.configのパラメーターを再確認しました。ローカルワークステーションでWebサイトを実行して以来、何も変更されていません。
  3. tnsping CONNECTION_NAMEは成功します。
  4. 環境変数は、Oracleクライアントの場所と同様に、両方のコンピューターで同じです。
    a。 Oracle_HOME = C:\Oracle\product\12
    b。 PATH = C:\Oracle\product\12\bin; .....
    c。 TNS_ADMIN = C:\Oracle\product\12\network\admin
    d。 HKLM\Software\Oracle\KEY_OraClient12Home = TNS_ADMINC:\Oracle\product\12\network\adminに追加されたレジストリエントリ
  5. 問題が発生した場合に備えて、ALTER SYSTEM SET SEC_CASE_SENSITIVE_LOGON = FALSE;コマンドを試してパスワードをリセットしました。私はmyaccountとそのパスワードのすべて大文字のバージョン、および両方のすべての小文字バージョンで接続しようとしました(両方の小文字は、ワークステーションで最初に機能したときに持っていた方法です)。
  6. アカウントにはPASSWORD_VERSIONS10G11Gがあります-12cクライアントを使用していて、12Cが存在しないことが重要かどうかはわかりません。サーバーとワークステーションの主な違いは、サーバーに12cクライアントしかないことです。ワークステーションには10g、11g、12cがあります。 11g ODP.NETアセンブリOracle.DataAccess.dllを使用しようとしましたが、名前空間を"Could not load file or Assembly 'Oracle.DataAccess' or one of its dependencies. An attempt was made to load a program with an incorrect format.".からusing Oracle.ManagedDataAccess.Clientに変更した後でも、コードがコンパイルされません(using Oracle.DataAccess.Clientが返されます)。
  7. 引用符を付けて、または付けずにパスワードを渡そうとしました。どちらの方法も、サーバーではなく、Visual Studioインスタンスで機能しました。
  8. 意図的に完全に偽のパスワードを入力し、サーバー上でサイトを十分な回数実行すると、アカウントがロックされるため、データベースに接続していることがわかります。

試してみることが足りなくなってしまった...どんなヘルプ/提案もいただければ幸いです。

5
vapcguy

これまでに一度しか見たことはありませんが、My Oracle Suppportのメモに記載されている問題があります。

FIPSを使用すると、ORA-01017:マネージドODP.NETのユーザー名/パスワードが無効になります(ドキュメントID 1937500.1)

これは公開されていないので、私はこれの完全なコンテンツを投稿しませんが、ここに本質があります:

このバグは12.1.0.2マネージドプロバイダーで修正されています。この修正が期待どおりに機能するには、DBバージョンが12.1.0.2以降である必要があります。

回避策は、レジストリに設定することですSystem\CurrentControlSet\Control\Lsa\FIPSAlgorithmPolicy\Enabledから0

この問題へのいくつかの公的な参照:

https://stackoverflow.com/questions/26410951/Oracle-manageddataaccess-and-ora-01017-invalid-username-password-logon-denied

https://stackoverflow.com/questions/31785650/ora-01005-error-connecting-with-odp-net

https://community.Oracle.com/thread/2557592?start=0&tstart=

5
Balazs Papp

私はコマンドで試していました:

ALTER SYSTEM SET SEC_CASE_SENSITIVE_LOGON = FALSE;

しかし、それはうまくいきませんでした。 DBAタブのSQL Developerを使用して変更する必要がありました。

  1. パラメータ「sec_case_sensitive_logon」を見つけて、その値を「FALSE」に変更します enter image description here
  2. ボタンを使用して変更をコミットします: enter image description here
  3. それはコミット戦略を尋ね、あなたは両方を選択する必要があります: enter image description here
  4. 「適用」をクリックします
  5. この手順が必要かどうかはわかりませんが、ユーザーのパスワードも変更しました。 (同じパスワードを設定しました)

場合によっては、「初期化パラメーター」を開く方法がわかりません。

  1. 「Oracle SQL Developer」を開く
  2. 「表示」メニューから「DBA」を選択します
  3. 接続を選択してください
  4. そして「初期化パラメータ」をクリックします

enter image description here

0