我一直在努力寻找有关为组成员提供 SysAdmin 服务器角色的 Active Directory 组的最佳实践信息或任何建议。我在一份新工作中,我是 50 到 100 个 SQL 实例的唯一 SQL Server DBA。还有另一位(网络)系统管理员将具有 SysAdmin 服务器角色。将来可能还会有其他人(可能是也可能不是 DBA)。
我正在描绘两种选择:
选项 1:在 Active Directory 中创建一个组,根据需要将我自己和任何其他人添加到该组中,在 AD 组的每个 SQL Server 实例上创建 SQL Server 登录名,并为登录名提供 SysAdmin 服务器角色。
这很方便,并且具有一定的灵活性。但这似乎是一个巨大的安全风险。作为一名 DBA,我无法完全控制 AD 组的成员(或外)。目前,每个 SQL Server 实例都有少数具有 SysAdmin 角色的登录名。除了我、网络系统管理员和 sa 之外,我想将 SysAdmin 带离他们所有人。如果我完成这项任务并实施选项 1,我最终不会比我开始的地方好。
选项 2:在每个 SQL Server 上使用单独的 Windows 身份验证(AD 帐户)登录,并赋予每个 SysAdmin 服务器角色。
这不是很方便,但只有两个人/AD 登录具有 SysAdmin 权限。只要我们都没有将 SysAdmin 角色成员资格授予其他人,就应该有一定的顺序。
哪个选项是首选?还有其他我忽略的选择吗?
个人账户将更难管理。它们使您可以更精细地控制访问权限,但您不能将 Active Directory 管理员拒之门外。在您的服务器上被授予本地管理员权限的任何人都可以获得对该实例的系统管理员访问权限。而且,正如一位非常优秀的 DBA 曾经告诉我的那样,如果您不能信任您的域管理员,那么您将面临更大的问题。
通过抽象您对 AD 组的访问,您可以获得两个好处:
我不想回答我自己的问题,但我决定选项 2 是适合我的方式。我终于找到了一些“最佳实践”信息,尽管它与PCI DSS 合规性有关。这是一本很棒的读物,有一些很棒的建议。我无法实现所有这些,而且我可能永远无法通过 PCI 审核,但我绝对会提高安全性。对于它的价值,以下是与
SYSADMIN
角色相关的建议: