我正在构建 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(如果需要用户级信息),那么这是一个非常小的问题。