我遇到了一些障碍,不幸的是,我无法找到我的问题的具体答案。我会尽力解释这个问题;我希望这是有道理的...
我对 SQL Server 和 Windows 身份验证的工作方式有疑问。这很复杂,所以我会尽力说清楚。
对于这种情况,请描绘以下内容:
- 一个 SQL Server 2008 实例,
- 在该服务器上,一个名为
Applications
的数据库 - 在
Applications
数据库中有两个模式称为app1
andapp2
, 每个模式都包含同名应用程序的所有表,
两个 Windows AD 组,每个应用程序一个,名为
app1_RW
andapp2_RW
,- 任何给定数量的用户都可以属于这些 AD 组中的一个或两个,
两个 .NET 应用程序,都使用 Windows 身份验证模式连接到数据库
Data Source=DATABASEINSTANCENAME;Initial Catalog=APPLICATIONS;Integrated Security=True
当用户打开application1
或application2
时,应用程序会执行以下操作(按此顺序):
检查以确保当前 Windows 用户是控制该应用程序安全性的相关 Windows AD 组的成员。
如果他们是该 AD 组的成员,则允许应用程序继续,
使用 Windows 身份验证登录到数据库。
问题:
当用户同时是app1_RW
and的成员时app2_RW
,似乎我无法强制哪个组登录。如果用户登录到application1
,我将看到 Windows 身份验证使用app2_RW
. 因此,应用程序会失败,因为app2_RW
无法访问运行所需的架构/权限application1
。
我曾希望我的答案就像在连接字符串中指定要登录的 Windows AD 组一样简单,但据我所知,如果Integrated Security=True
.
任何人都可以提供任何帮助吗?我非常想继续使用 Windows AD 组来管理我的应用程序。如果我错过了任何信息或者我可以澄清,请告诉我。
非常感谢,祝您有美好的一天。