KB: MySQL DbLib 接続で、設定された MySQL 認証ではなく Windows 認証が使用される

Altium Designer Altium Designer
場合によっては、Altium Designer の DbLib または SVNDbLib から MySQL への接続時に、設定済みの MySQL 認証情報ではなく、現在の Windows ユーザーアカウントを使用して認証しようとすることがあります。これにより、接続テストの失敗、接続ダイアログを再度開いた後の認証エラー、あるいは MySQL のログに Windows ベースのログイン試行が記録されるといった問題が発生することがあります。 この問題は通常、ODBC データソースによって MySQL の認証情報が正しく保持されていない場合に発生します。適切な認証情報を設定した 64 ビットのシステム DSN を構成することで、必要な MySQL 認証情報を接続時に利用できるようになり、Windows ユーザー コンテキストへの認証のフォールバックを防ぐことができます。

ソリューションの詳細

認証の試行で誤ったアカウントが使用される

次の症状の1つ以上が見られる場合があります。

  • [Test Connection]は、毎回ユーザー名とパスワードを再入力しない限り失敗する。
  • 接続は一時的には動作するが、ダイアログを再度開くと失敗する。
  • テーブルとスキーマは表示されるが、通常使用時の認証で失敗する。
  • MySQL のログに、MySQL アカウントではなく Windows のユーザー名とドメインを使用したログイン試行が記録される。
  • 同じ .DbLib ファイルと DSN が、あるマシンでは正しく動作するのに別のマシンでは失敗する。
  • 接続テストは現在のセッションでのみ成功し、永続化されない。

Microsoft Data Link Error dialog showing connection test failure: provider initialization failed; MySQL ODBC 8.0 reports “Access denied for user ‘altium’@…de (using password: YES)”

資格情報が接続に永続化されない

この動作は、Altium Designer、MSDASQL、および MySQL ODBC ドライバーの相互作用によって発生することがあります。

  • Altium Designer はデータベースの資格情報を保存しません。接続ダイアログに入力した値は、現在のセッションでのみ有効です。
  • DbLib および SVNDbLib 接続では OLE DB 接続文字列を使用し、ODBC データソースに接続する際には一般に Microsoft の ODBC プロバイダー(MSDASQL)に依存します。
  • MySQL ODBC ドライバーは、DSN 構成の一部として資格情報を保存します。
  • DSN が資格情報を正しく永続化しない場合、OLE DB プロバイダーはデータベースユーザー情報を受け取りません。
  • MySQL ユーザーが指定されていない場合、MSDASQL は現在の Windows ユーザー コンテキストにフォールバックすることがあります。
  • MySQL は Windows 統合認証をサポートしていないため、認証は失敗します。
  • User DSNs は、権限の問題、セキュリティ ポリシー、資格情報の永続化の問題、および 32 ビット/64 ビットの不一致の影響をより受けやすくなります。
  • テーブルやスキーマを参照できることは、その後の認証を伴う操作が成功することを必ずしも意味しません。

永続的なシステム DSN を構成する

  • MySQL 用に、適切な資格情報を設定した 64-bit System DSN を使用します。
  • セッション中に入力した資格情報に依存するのではなく、Database Library からその System DSN を参照してください。
  • エンタープライズ環境またはセキュリティ強化環境では、User DSNs の使用を避けてください。
  • ODBC ドライバー、DSN、および Altium Designer のインストールがすべて 64 ビット コンポーネントであることを確認してください。

System DSN の作成と検証

  1. C:\Windows\System32\odbcad32.exe を使用して、管理者権限で 64 ビット ODBC Administrator を開きます。
  2. 32 ビット版ではなく、64 ビット ODBC Administrator を使用していることを確認してください。
  3. System DSN タブを選択し、Add を選びます。
  4. MySQL ODBC 8.0 Unicode Driver を選択します。MySQL サーバー名、データベース名、MySQL ユーザー名、および MySQL パスワードを入力します。
  5. Test を選択して DSN を保存します。
  6. Altium Designer で .DbLib または .SVNDbLib ファイルを開きます。
  7. 構成した System DSN を参照して接続をテストします。
  8. 接続ダイアログを閉じて再度開き、もう一度テストして資格情報が永続化されていることを確認します。
  9. MySQL サーバー ログに、DOMAIN\Username の形式の Windows アカウントではなく、構成した MySQL アカウントが表示されることを確認してください。

補足事項

  • Altium Designer には、互換性のある 64 ビットのデータベース アクセス レイヤーが必要です。
  • Altium Designer は、設計上データベースの資格情報を保持しません。
  • Altium Designer で資格情報を再入力しても、一時的な接続テストが可能になるだけです。
  • ODBC の資格情報はマシン固有であり、.DbLib または .SVNDbLib ファイルを開くすべてのワークステーションで構成する必要があります。
  • オプション: 追加のトラブルシューティングが必要な場合は、System DSN のレジストリ エントリを確認してください。
  • 同じライブラリがあるマシンでは動作し別のマシンでは動作しない場合は、DSN の種類、ドライバーのバージョン、ドライバーのビット数、および資格情報の永続化設定を比較してください。

参考資料

AI-LocalizedAI で翻訳
問題が見つかった場合、文字/画像を選択し、Ctrl + Enter キーを押してフィードバックをお送りください。
Content