通过 Active Directory 组管理 SQL Server 用户

通过 Active Directory 组管理 SQL Server 用户

我正在构建 SQL Server 实例以用于报告目的。我的计划是使用 AD 组进行服务器和数据库登录。我有几个具有不同角色(管理员、开发人员、用户等)的组,我想将这些角色映射到 SQL Server 数据库角色(db_owner、db_datawriter 等)。使用 AD 组进行登录的优缺点是什么?您注意到了什么样的问题?

答案1

除了首先必须管理 AD 的开销之外,我认为没有任何缺点。使用 SQL Server 的 Windows 登录凭据,特别是以您所说的有组织的角色组的方式,无疑是 Microsoft 的最佳实践建议。如果他们有办法,他们会完全取消 SQL Server 身份验证选项。

附录:

如果您使用的是 SQL 2005 或更高版本,请使用默认架构选项(不要认为有用于此的 GUI 选项),方法如下:

ALTER USER userName  
     WITH <set_item> [ ,...n ]

<set_item> ::= 
     NAME = newUserName 
     | DEFAULT_SCHEMA = schemaName
     | LOGIN = loginName

IE:

ALTER USER DOMAIN\UserName DEFAULT_SCHEMA = dbo;
GO

答案2

Active Directory 组的管理也可以委托给非 Active Directory 管理员,这是应用程序管理工具所缺少的一个方便的功能。

答案3

我遇到的最大问题是第三方应用程序不支持 AD 身份验证,并坚持使用 SQL 身份验证,通常使用 admin/admin 等创造性登录名;除此之外,唯一的问题是您无法完全了解谁有权访问 SQL 服务器上的数据库,您只能看到组,或者在用户处于活动状态时或用户拥有对象时才能看到用户。但只要您的 DBA 有权访问 Active Directory(如果需要用户级信息),那么这是一个非常小的问题。

相关内容