接続しようとすると、次のようなエラーが発生します。
ログインに失敗しました。ログインは Windows 認証では使用できません
同じドメインにないマシン間で信頼された接続を使用しようとしているだけなので、SQL Server と Web サーバーでミラー化されたローカル アカウントを使用しています。それはかなり一般的なことのように思えますが、私の状況に当てはまる答えを見つけようと何日も試みた後、私は答えのどれも当てはまることを認識していません...それまたは私が. NET 開発者であり、システム管理者や DBA ではないということは、私がそれを持っていて、それを知らないということです。
私が言えることは次のとおりです。
- CMS Web サーバー: 企業 DMZ 上の Windows Server 2008、IIS7 で実行される ASP.NET 4.0 Web アプリ
- CMS データベース サーバー: ドメイン サーバー上の SQL Server 2008 R2
- ここでは説明しませんが、さまざまな理由から、資格情報の暗号化は十分ではありません。
- アプリケーションが接続する必要があるデータベース ポートは標準ポートではなく、別のポートでリッスンするように設定されています。
- DB ミラーリングの設定はオプションではなく、実際には要件に対応していません (私の考え方では)
また、参考までに:
- コンテンツ エントリは、DMZ Web サーバーによってアクセスされる同じ DB にコンテンツを発行する内部 Web サーバーで発生します。
コンテンツ サーバーは、-ga スイッチを使用してサービス アカウントとして設定され、すべての適切な権限が付与された Windows ドメイン ユーザーと統合モードでアプリ プールを Web サイトで実行するように設定されており、すべてが完璧に実行されます。
外部 Web サーバー、ドメイン アクセスなし、ミラーリングされたアカウントを使用 (SQL Server マシンと Web マシンで設定された同じユーザー名とパスワード)。
- -ga スイッチを使用してサービス アカウントとして設定され、アプリのアプリ プール ID として実行される Web サーバー上のローカル アカウント。
- SQL Server ボックスで、同一の資格情報を持つローカル ユーザーを作成し、ドメイン ユーザー ID と同じ権限を与えます。
- SQL Server ユーザー資格情報を使用して Web サーバーにインストールされた MGMT Studio 経由で SQL Server に接続すると、正常に動作します。
ここで、ユーザー名を接続文字列に入れると、すべてが完璧になります。ドメイン サーバーの接続文字列で行ったように、trusted_connection=yes を接続文字列に入れるとすぐに、信頼エラーが発生します。
したがって、接続文字列が次のような場合、正常に動作します。
Server=myServerAddress;Database=myDataBase;Username=MyUser; Password=MyPassword;
接続文字列を次のいずれかに変更すると、失敗します。
Server=myServerAddress;Database=myDataBase;Trusted_Connection=True;
また
Data Source=myServerAddress;Initial Catalog=myDataBase;Integrated Security=SSPI;
クライアントのネットワーク管理者の 1 人と仕事をしていますが、彼は必ずしも DBA ではなく、Web アプリの構成の経験もありません。そのため、何かが不足している可能性があり、アドバイスやアイデアが役立ちます. 私は何が欠けていますか?