事実:
- 通常のドメイン ユーザー XYZ を使用して "ログオン" すると、サービスはすべて正常に動作します。これは、データベースが存在し、接続文字列が適切であることを意味します。
- ローカル サービスを使用すると、エラー 18456、状態 38 が表示されます
<DOMAIN>\<Machine>$
ログインアカウントを作成しました<DOMAIN>\<MACHINE>$
DB へのユーザー マッピング、サーバー ロール、セキュリティ保護可能な要素、ステータスなど、XYZと同じ権限を付与しました。
私の接続文字列は次のとおりです。
"SERVER=localhost;DATABASE=<TARGET_DATABASE>;TRUSTED_CONNECTION=True;Persist Security Info=False;"
エラーメッセージには次のように記載されています。
Login failed for user '<DOMAIN>\<MACHINE>$'. Reason: Failed to open the explicitly specified database '<TARGET_DATABASE>'. [CLIENT: <local machine>]
注: 上記:[CLIENT: <local machine>]
は実際のテキストであり、置換されていません。
その他の考慮事項
これは、WIX セットアップ プログラムを介してインストールされている Web サイトからのものです。セットアップによってサービスがインストールされ、使用するアカウントを選択できます。現在は「ローカル システム」を使用していますが、それが悪い習慣である場合は変更できますが、他のすべてのサービス (SQL 以外) が使用しているようです。その同じパターン。