如何在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名?