SuperCoolMoss Asked: 2009-06-05 10:44:39 +0800 CST2009-06-05 10:44:39 +0800 CST 2009-06-05 10:44:39 +0800 CST 赋予 SQL 的服务帐户管理员权限的优缺点是什么? 772 赋予 SQL 的服务帐户管理员权限的优缺点是什么? sql-server 5 个回答 Voted Best Answer MatthewMartin 2009-06-05T11:41:08+08:002009-06-05T11:41:08+08:00 在非管理员下为 SQL 2000 运行 SQL 服务帐户是很棘手的。我尝试过一次,它进行了大量的试验和错误,在注册表、文件等上设置自定义帐户的权限。最后,它似乎工作了,但我不知道它是否总是适用于所有场景。 对于 SQL 2005+,真的没有任何借口。MS SQL 团队在安装时提供了具有适当权限的配置角色——只需输入一个非管理员帐户,瞧,这是一种 MS 批准的在没有 Windows 管理员权限的情况下运行 SQL 的方式。 如果您有存储过程或需要管理员权限的内容,您应该重写它们、删除它们、替换它们。除非您正在加载执行需要管理员权限的自定义扩展存储过程或 COM 对象,或者尝试使用 xp_cmdshell 运行任意代码,否则这种情况极不可能发生。 作为 Evil Hacker(TM),我想说最大的优点:能够通过 SQL 注入攻击运行 fdisk :-) 不要忘记导致全球互联网故障的 Slammer 病毒是 SQL Server 漏洞。 squillman 2009-06-05T11:00:26+08:002009-06-05T11:00:26+08:00 Pro:完全访问本地系统 缺点:完全访问本地系统 此外,如果服务帐户也是域帐户,则 SQL 还可以访问该帐户可以访问的任何网络资源,这些资源可以是好是坏。在 SQL 2005+ 中,您仍然必须通过表面区域配置(xp_cmdshell、CLR 等)专门启用一些在系统级别存在危险的功能,但一旦启用它们...... 使其成为本地管理员是一个懒人的做事方式,尽管要容易得多。在我看来,你必须权衡风险。但是,将其设为非特权帐户并根据需要授予特权要安全得多,也是最佳实践。在服务器上使用最小权限原则。 OilyRag 2009-06-05T10:55:01+08:002009-06-05T10:55:01+08:00 主要的是安全性,特别是如果您需要像 xp_cmdshell 这样的东西来实现向后兼容性。它可以使在机器上运行任何命令变得容易。 服务帐户不会经常更改密码并导致另一个可能的攻击向量。 因此,最安全的方法是将服务帐户保持在最低权限。 Shawn Anderson 2009-06-05T11:04:34+08:002009-06-05T11:04:34+08:00 安全。我建议联系数据库支持的应用程序供应商,并准确了解服务帐户需要做什么。有时供应商会变得懒惰,只是在他们的文档中抛出一个“需要 root”的毯子,但是当你按下时你会发现他们只需要某些插入权限。 请记住,root 是非常无情的。 Ra Osolage 2009-11-25T10:24:12+08:002009-11-25T10:24:12+08:00 我已经很多年没有构建 SQL Server 2000 实例了!.. 对于 SQL Server 2005/2008,我什至不将其添加为本地用户!当然,安装程序授予用户帐户作为批处理作业权限登录。然后你必须赋予它锁定内存页面和执行卷维护任务的权限。此外,安装程序不会向可能涉及的任何挂载点授予权限,因此您应该在运行安装程序之前手动处理。 我遇到的唯一问题是服务帐户无法访问 ODBC DSN。我敢肯定有办法解决这个问题,虽然......
在非管理员下为 SQL 2000 运行 SQL 服务帐户是很棘手的。我尝试过一次,它进行了大量的试验和错误,在注册表、文件等上设置自定义帐户的权限。最后,它似乎工作了,但我不知道它是否总是适用于所有场景。
对于 SQL 2005+,真的没有任何借口。MS SQL 团队在安装时提供了具有适当权限的配置角色——只需输入一个非管理员帐户,瞧,这是一种 MS 批准的在没有 Windows 管理员权限的情况下运行 SQL 的方式。
如果您有存储过程或需要管理员权限的内容,您应该重写它们、删除它们、替换它们。除非您正在加载执行需要管理员权限的自定义扩展存储过程或 COM 对象,或者尝试使用 xp_cmdshell 运行任意代码,否则这种情况极不可能发生。
作为 Evil Hacker(TM),我想说最大的优点:能够通过 SQL 注入攻击运行 fdisk :-)
不要忘记导致全球互联网故障的 Slammer 病毒是 SQL Server 漏洞。
Pro:完全访问本地系统
缺点:完全访问本地系统
此外,如果服务帐户也是域帐户,则 SQL 还可以访问该帐户可以访问的任何网络资源,这些资源可以是好是坏。在 SQL 2005+ 中,您仍然必须通过表面区域配置(xp_cmdshell、CLR 等)专门启用一些在系统级别存在危险的功能,但一旦启用它们......
使其成为本地管理员是一个懒人的做事方式,尽管要容易得多。在我看来,你必须权衡风险。但是,将其设为非特权帐户并根据需要授予特权要安全得多,也是最佳实践。在服务器上使用最小权限原则。
主要的是安全性,特别是如果您需要像 xp_cmdshell 这样的东西来实现向后兼容性。它可以使在机器上运行任何命令变得容易。
服务帐户不会经常更改密码并导致另一个可能的攻击向量。
因此,最安全的方法是将服务帐户保持在最低权限。
安全。我建议联系数据库支持的应用程序供应商,并准确了解服务帐户需要做什么。有时供应商会变得懒惰,只是在他们的文档中抛出一个“需要 root”的毯子,但是当你按下时你会发现他们只需要某些插入权限。
请记住,root 是非常无情的。
我已经很多年没有构建 SQL Server 2000 实例了!..
对于 SQL Server 2005/2008,我什至不将其添加为本地用户!当然,安装程序授予用户帐户作为批处理作业权限登录。然后你必须赋予它锁定内存页面和执行卷维护任务的权限。此外,安装程序不会向可能涉及的任何挂载点授予权限,因此您应该在运行安装程序之前手动处理。
我遇到的唯一问题是服务帐户无法访问 ODBC DSN。我敢肯定有办法解决这个问题,虽然......