29

SQL Server Express 2008 设置允许您为每个服务分配不同的用户帐户。

对于开发环境,您会使用域用户、本地用户、NT Authority\NETWORK SERCVICE、NT Authority\Local System 还是其他一些帐户,为什么?

4

4 回答 4

36

不建议使用本地系统,它是管理员等效帐户,因此可能会导致有问题的编码利用管理员特权,这在生产系统中是不允许的,因为具有安全意识的管理员/DBA 真的不喜欢以管理员身份运行服务.

根据服务器实例是否需要访问其他域资源,应该确定它应该在哪种类型的低权限帐户下运行。

如果它不需要访问任何(非匿名)域资源,那么我通常会创建一个唯一的本地低权限帐户来运行它,以便获得不在同一身份上下文中运行多个服务的额外安全优势. 请注意,SQL Server 或 SQL Server 代理服务不支持本地服务帐户。

如果它确实需要访问非匿名域资源,那么您有三个选择:

  1. 作为网络服务运行,它也是一个低权限帐户,但保留了计算机网络凭据。
  2. 在本地服务帐户下运行
  3. 在具有低本地权限的自定义域帐户下运行。在开发人员帐户下运行的一个优点是更容易以您自己的身份将调试器附加到进程而不会影响安全性,因此调试更容易(因为默认情况下非管理员帐户无权将调试器附加到另一个身份进程)。使用另一个域帐户的一个缺点是管理这些帐户的开销,特别是因为每个开发人员的每项服务理想情况下都应该具有唯一的凭据,因此如果开发人员离开,您不会有任何泄漏。

我倾向于做的大部分事情都不需要该服务来访问域资源,因此我倾向于使用我管理的唯一本地低权限帐户。我还以非管理员用户的身份运行(并且在 XP SP2、Server 2003、Vista 和 Server 2008 下运行,没有出现重大问题),所以当我需要该服务来访问域资源时,我不用担心关于使用我自己的域凭据(加上这样我不必担心网络管理员创建/维护一堆非生产域身份)。

于 2008-09-15T15:28:32.107 回答
15

这取决于。

  • 本地系统 - 从不,它的特权太高了。
  • 网络服务——也许,如果您需要连接到网络资源,但这是值得怀疑的。
  • 本地服务 - 可能是最佳选择,权限有限,不解锁网络连接
  • 本地交互用户?它真的需要有登录权限,或者作为用户吗?
  • 域用户?天哪,除非您从其中访问网络驱动器,否则不会;如果 SQL 运行异常,则攻击者会针对该域进行身份验证。
于 2008-09-15T15:12:54.483 回答
4

MS 现在有一篇很好的文章:http: //msdn.microsoft.com/en-us/library/ms143504 (v=sql.105).aspx

他们声明 SQL Server 引擎不允许本地服务。就个人而言,我使用本地系统只是为了避免在开发过程中出现问题,但在生产中,最佳实践是创建一个域级服务帐户,它只具有完成工作所需的权限。

于 2013-10-01T16:34:25.997 回答
-3

无论它想用作默认值。改变它只是在以后自找麻烦。

于 2008-09-15T15:19:50.363 回答