给SQL的服务帐号pipe理员权限有什么优点和缺点?
运行非pipe理SQL 2000的SQL服务帐户是棘手的。 我试了一次,它花了很多的试验和错误,为registry,文件等设置自定义帐户的权利。在它的结尾,它似乎工作,但我不知道是否总是会在所有情况下工作。
对于SQL 2005+,真的没有任何借口。 MS SQL团队在安装时提供了相应权限的configurationangular色 – 只需放入非pipe理员帐户即可,MS认可的方式运行无Windowspipe理员权限的SQL。
如果你有存储过程,或者你有什么需要pipe理员权限,你应该重写它们,删除它们,replace它们。 除非加载自定义的扩展存储过程或执行某些需要pipe理员权限的COM对象,或者尝试使用xp_cmdshell运行任意代码,否则这种情况极不可能。
作为一个邪恶的黑客(TM),我会说最大的PRO:能够通过SQL注入攻击来运行fdisk 🙂
不要忘记,导致全球互联网故障的Slammer病毒是一个SQL Server漏洞。
Pro:完全访问本地系统
骗局:完全访问本地系统
另外,如果服务帐户也是一个域帐户,那么SQL也可以访问帐户有权访问的任何networking资源。 在SQL 2005+中,您仍然必须通过表面区域configuration(xp_cmdshell,CLR等)特定地启用某些在系统级别呈现危险的function,但是一旦启用它们,那么….
使本地pipe理员是一个懒惰的人做事的方式,尽pipe容易得多。 在我看来,你必须权衡风险。 尽pipe如此,更安全和最佳的做法是使其成为非特权帐户,并根据需要授予特权。 在服务器上使用最小权限的原则。
主要的是安全性,特别是如果你需要像xp_cmdshell这样的向后兼容性。 它可以使在机器上运行任何命令变得简单。
服务帐户不会得到密码更改为经常,并导致另一个可能atackvector。
所以最安全的做法是保持服务帐户的最小特权。
安全。 我build议联系数据库支持的应用程序的供应商,并确切了解服务帐户需要做什么。 有时供应商会变得懒惰,只是在他们的文档中放一个“需要root”的毛毯,但是当你按下时,你会发现他们只需要一定的插入权限。
请记住,根是非常无情的。
我还没有多年build立一个SQL Server 2000实例!
对于SQL Server 2005/2008,我甚至不把它作为本地用户添加! 当然,安装程序授予用户帐户日志作为批量作业权限。 然后,您必须授权将内存页locking并执行卷维护任务。 此外,安装程序不会授予任何可能涉及的挂载点的权限,因此在运行安装程序之前应手动处理该问题。
唯一遇到的麻烦是服务帐户无法访问ODBC DSN。 我相信有一个方法,虽然…