少し問題が発生しましたが、残念ながら、私の問題に対する具体的な答えを見つけることができませんでした. 問題を説明するために最善を尽くします。私はそれが理にかなっていることを願っています...
SQL Server と Windows 認証の動作に問題があります。複雑なので、わかりやすくするために最善を尽くします。
このシナリオでは、次の図を描きます。
- 1 つの SQL Server 2008 インスタンス、
- そのサーバーでは、 と呼ばれる 1 つのデータベース
Applications
、 - データベースには、と
Applications
という 2 つのスキーマがあります。app1
app2
各スキーマには、同じ名前のアプリケーションのすべてのテーブルが含まれています。
app1_RW
およびという名前の 2 つの Windows AD グループ (アプリケーションごとに 1 つずつapp2_RW
)- 任意の数のユーザーが、これらの AD グループの一方または両方に属することができます。
2 つの .NET アプリケーション (どちらも Windows 認証モードを使用してデータベースに接続)
Data Source=DATABASEINSTANCENAME;Initial Catalog=APPLICATIONS;Integrated Security=True
application1
ユーザーがまたはを開くapplication2
と、アプリケーションは次のことを (この順序で) 実行します。
現在の Windows ユーザーが、そのアプリケーションのセキュリティを制御する関連する Windows AD グループのメンバーであることを確認してください。
彼らがその AD グループのメンバーである場合は、アプリケーションの続行を許可し、
Windows 認証を使用してデータベースにログオンします。
問題:
ユーザーが と の両方のメンバーである場合、app1_RW
どのapp2_RW
グループを強制的にログオンさせることができないようです。ユーザーが にログオンするとapplication1
、Windows 認証が を使用してデータベースにログインする場所が表示されますapp2_RW
。app2_RW
したがって、実行に必要なスキーマ/権限にアクセスできないため、アプリケーションは失敗しますapplication1
。
どの Windows AD グループにログインするかを接続文字列として指定するだけの簡単な答えになることを願っていましたが、私が知る限り、接続文字列の "User Id" を指定することはできませんIntegrated Security=True
。
誰でも助けを提供できますか?アプリケーションの管理に引き続き Windows AD グループを使用したいと考えています。情報が不足している場合、または明確にすることができる場合は、お知らせください。
どうぞよろしくお願いいたします。