Sql server 登录到SQL Server Windows对Active Directory组的身份验证时出现问题

Sql server 登录到SQL Server Windows对Active Directory组的身份验证时出现问题,sql-server,windows-authentication,Sql Server,Windows Authentication,我遇到了一点困难,不幸的是,我一直无法找到我的问题的具体答案。我会尽力解释这个问题;我希望这是有意义的 我对SQL Server和Windows身份验证的工作方式有问题。事情很复杂,所以我会尽力澄清 对于此场景,请绘制以下图片: 一个SQL Server 2008实例 在该服务器上,有一个名为应用程序的数据库 在应用程序数据库中,有两个模式称为app1和app2 每个架构包含同名应用程序的所有表 两个Windows广告组,每个应用程序一个,分别命名为app1\u RW和app2\u RW 任何

我遇到了一点困难,不幸的是,我一直无法找到我的问题的具体答案。我会尽力解释这个问题;我希望这是有意义的

我对SQL Server和Windows身份验证的工作方式有问题。事情很复杂,所以我会尽力澄清

对于此场景,请绘制以下图片:

  • 一个SQL Server 2008实例
  • 在该服务器上,有一个名为
    应用程序
    的数据库
  • 应用程序
    数据库中,有两个模式称为
    app1
    app2
  • 每个架构包含同名应用程序的所有表

  • 两个Windows广告组,每个应用程序一个,分别命名为
    app1\u RW
    app2\u RW

  • 任何给定数量的用户都可以在一个或两个广告组中
  • 两个.NET应用程序,都使用Windows身份验证模式连接到数据库

    Data Source=DATABASEINSTANCENAME;Initial Catalog=APPLICATIONS;Integrated Security=True
    
当用户打开
application1
application2
时,应用程序将执行以下操作(按此顺序):

  • 检查以确保当前Windows用户是控制该应用程序安全性的相关Windows广告组的成员

  • 如果他们是该广告组的成员,则允许应用程序继续

  • 使用Windows身份验证登录到数据库

  • 问题

    当用户同时是
    app1\u RW
    app2\u RW
    的成员时,我似乎无法强制哪个组登录。如果用户登录到
    application1
    ,我将看到Windows身份验证使用
    app2\u RW
    将他们登录到数据库的位置。因此,应用程序失败,因为
    app2\u RW
    无权访问运行
    application1
    所需的架构/权限

    我曾希望我的答案会像在连接字符串中指定要登录的Windows广告组一样简单,但据我所知,如果
    Integrated Security=True
    ,则无法指定连接字符串的“用户Id”

    有人能帮忙吗?我非常想继续使用Windows广告组来管理我的应用程序。如果我遗漏了任何信息或我可以澄清,请让我知道


    非常感谢您,祝您度过愉快的一天。

    只要这两个广告组不是互斥的,您就可以在应用程序中设置规则,确定哪个组是超集,并将该组用作登录。如果这两个组再次互斥,请设置一个规则以提供最低权限。希望对您有所帮助。

    您确定您提供了完整的信息吗?您收到了什么错误消息?这是权限问题还是命名问题?这两个应用程序是在同一个目录中还是在不同的目录中?。。。。通常,您需要在数据库中创建角色,为角色分配权限,然后使用“用户映射”对话框将登录映射到数据库角色。这将允许您实现所需的多/多映射。