我有一个使用windows身份验证连接到SQL Server的.net应用程序。
我们不能在应用程序中使用SQL Server身份验证。我们的项目有很多Active Directory用户。因此,我们必须在SQL Server中为每个Active Directory用户创建单独的登录帐户,而不是为每个AD用户创建单独的登录帐户,是否有办法在SQL Server中使用active directory用户组?
发布于 2011-02-17 20:51:47
在SQL Server Management Studio中,转到Object Explorer > (your server) > Security > Logins
,然后右击New Login
然后在弹出的对话框中,选择您想要查看的对象类型(默认情况下Groups
是禁用的-选中它!)然后选择您要查找对象的位置(例如,使用Entire Directory
),然后找到您的AD组。
现在,您拥有了常规的SQL Server登录-就像为单个AD用户创建登录一样。为这个新登录名提供它所需的数据库权限,然后就可以开始了!
该AD组的任何成员现在都可以登录到SQL Server并使用您的数据库。
发布于 2013-11-24 21:18:26
您可以使用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
如果是德语或法语窗口,则需要使用服务的本地化名称,请参阅How to create a SQL Server login for a service account on a non-English Windows?
发布于 2020-05-13 06:11:08
这是我的观察结果。我为一个组窗口(AD)用户帐户创建了一个登录(只读),但它在不同的SQL服务器上的行为是挑衅的。在用户看不到数据库的SQl服务器中,我增加了视图定义检查,并将数据库的执行渗透到主数据库中,以避免出现错误229。如果我为用户创建登录,则不会出现此问题。
https://stackoverflow.com/questions/5029014
复制相似问题