赋予SQL的服务账户管理员权限有哪些利弊?
答案1
在非管理员权限下运行 SQL 2000 的 SQL 服务帐户比较棘手。我试过一次,经过反复尝试,设置了注册表、文件等自定义帐户的权限。最后,它似乎成功了,但我不知道它是否在所有情况下都能正常工作。
对于 SQL 2005+,真的没有借口。MS SQL 团队在安装时提供具有适当权限的配置角色 - 只需放入非管理员帐户即可,这是 MS 批准的无需 Windows 管理员权限即可运行 SQL 的方法。
如果您有存储过程或其他需要管理员权限的东西,您应该重写、删除或替换它们。除非您正在加载需要管理员权限的自定义扩展存储过程或 COM 对象,或者尝试使用 xp_cmdshell 运行任意代码,否则这种情况不太可能发生。
作为一名邪恶黑客 (TM),我认为最大的优点是:能够通过 SQL 注入攻击运行 fdisk :-)
答案2
优点:完全访问本地系统
缺点:完全访问本地系统
此外,如果服务帐户也是域帐户,那么 SQL 还可以访问该帐户可以访问的任何网络资源,这些资源可能是好的,也可能是坏的。在 SQL 2005+ 中,您仍然必须通过表面区域配置(xp_cmdshell、CLR 等)专门启用一些在系统级别上存在危险的功能,但一旦启用它们,那么……
使其成为本地管理员是一种懒人的做法,尽管这样做要容易得多。在我看来,你必须权衡风险。不过,更安全、最好的做法是使其成为非特权帐户,并根据需要授予特权。在服务器上使用最小特权原则。
答案3
最主要的是安全性,特别是当你需要像 xp_cmdshell 这样的东西来实现向后兼容时。它可以轻松在机器上运行任何命令。
服务帐户的密码不会经常更改,这会导致另一种可能的攻击媒介。
因此,最安全的方法是将服务帐户保留在最低权限。
答案4
我已经有好几年没有构建过 SQL Server 2000 实例了!..
对于 SQL Server 2005/2008,我甚至没有将其添加为本地用户!当然,安装程序授予用户帐户以批处理作业权限登录。然后,您必须授予它权限以锁定内存中的页面并执行卷维护任务。此外,安装程序不会授予可能涉及的任何挂载点的权限,因此您应该在运行安装程序之前手动处理该问题。
我遇到的唯一麻烦是服务帐户无法访问 ODBC DSN。不过我相信一定有办法解决这个问题...