How to add Active Directory user group as login in SQL Server

我有一个.NET 应用程序,它使用 Windows 身份验证连接到 SQLServer。

不能在应用程序中使用 SQLServer 身份验证。我们的项目有很多 ActiveDirectory 用户。因此,我们必须为 SQLServer 中的每个 ActiveDirectory 用户创建单独的登录帐户,而不是为每个 AD 用户创建单独的登录帐户,有没有办法在 SQLServer 中使用活动目录用户组?

290129 次浏览

在 SQLServerManagementStudio 中,转到 Object Explorer > (your server) > Security > Logins并右键单击 New Login:

enter image description here

然后在弹出的对话框中,选择您想要查看的对象类型(Groups默认禁用-选中它!)选择你想要寻找对象的位置(例如使用 Entire Directory) ,然后找到你的广告组。

enter image description here

You now have a regular SQL Server Login - just like when you create one for a single AD user. Give that new login the permissions on the databases it needs, and off you go!

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

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

转到 SQLServerManagementStudio,导航到 Security,转到 Logins 并右键单击它。菜单会显示一个“新登录”按钮。在那里,您将能够将 ActiveDirectory 中的用户和/或组添加到您的 SQLServer“权限”中。