首页 文章

如何在SQL Server中将Active Directory用户组添加为登录名

提问于
浏览
96

我有一个.net应用程序,它使用Windows身份验证连接到SQL Server .

我们无法在应用程序中使用SQL Server身份验证 . 我们的项目有很多Active Directory用户 . 因此,我们必须为SQL Server中的每个Active Directory用户创建单独的登录帐户,而不是为每个AD用户创建单独的登录帐户,有没有办法在SQL Server中使用Active Directory用户组?

2 回答

  • 20

    在SQL Server Management Studio中,转到 Object Explorer > (your server) > Security > Logins 并右键单击 New Login

    enter image description here

    然后在弹出的对话框中,选择要查看的对象类型(默认情况下禁用 Groups - 检查它!)并选择要查找对象的位置(例如使用 Entire Directory ),然后找到AD组 .

    enter image description here

    您现在有一个常规的SQL Server登录 - 就像为单个AD用户创建一个SQL Server一样 . 为新登录名提供所需数据库的权限,然后离开!

    该AD组的任何成员现在都可以登录到SQL Server并使用您的数据库 .

  • 143

    您可以使用T-SQL:

    use master
    GO
    CREATE LOGIN [NT AUTHORITY\LOCALSERVICE] FROM WINDOWS WITH
    DEFAULT_DATABASE=yourDbName
    GO
    CREATE LOGIN [NT AUTHORITY\NETWORKSERVICE] FROM WINDOWS WITH
    DEFAULT_DATABASE=yourDbName
    

    我使用它作为从 生产环境 服务器到测试机器的恢复的一部分:

    USE master
    GO
    ALTER DATABASE yourDbName SET OFFLINE WITH ROLLBACK IMMEDIATE
    RESTORE DATABASE yourDbName FROM DISK = 'd:\DropBox\backup\myDB.bak'
    ALTER DATABASE yourDbName SET ONLINE
    GO
    CREATE LOGIN [NT AUTHORITY\LOCALSERVICE] FROM WINDOWS WITH
    DEFAULT_DATABASE=yourDbName
    GO
    CREATE LOGIN [NT AUTHORITY\NETWORKSERVICE] FROM WINDOWS WITH
    DEFAULT_DATABASE=yourDbName
    GO
    

    在德语或法语Windows的情况下,您将需要使用本地化的服务名称,请参阅How to create a SQL Server login for a service account on a non-English Windows?

相关问题