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

我有一个.NET应用程序使用Windows身份validation连接到SQL Server。

我们不能在应用程序中使用SQL Server身份validation。 我们的项目中有很多Active Directory用户。 所以我们必须为SQL Server中的每个Active Directory用户创build单独的login帐户,而不是为每个AD用户创build单独的login帐户,有什么方法可以在SQL Server中使用活动目录用户组?

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

在这里输入图像描述

然后在popup的对话框中,select您想要查看的对象的types(默认情况下, Groups是被禁用的 – 检查它!)并select您想要查找对象的位置(例如,使用“ Entire Directory ),然后查找你的AD组。

在这里输入图像描述

您现在有一个常规的SQL Serverlogin – 就像为单个AD用户创build一个login一样。 给这个新的login权限在它需要的数据库上,然后离开你!

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

你可以使用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 

我将其用作从生产服务器恢复到testing机器的一部分:

 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,则需要使用本地化的服务名称,请参阅如何在非英语版Windows上为服务帐户创buildSQL Serverlogin名?