2011-02-17 106 views
84

我有一个.net应用程序使用Windows身份验证连接到SQL Server。如何在SQL Server中添加Active Directory用户组作为登录

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

回答

123

在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用户只喜欢。为新的登录提供所需数据库的权限,然后离开!

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

+0

谢谢对此,理想。 – Derek 2012-07-13 11:37:01

+0

有没有像上面那样在mysql中创建组的机会? – uzay95 2012-07-17 11:14:07

19

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

相关问题