我们建议使用哪个用户帐户在开发环境中运行SQL Server Express 2008服务?
时间:2020-03-05 18:53:40 来源:igfitidea点击:
SQL Server Express 2008安装程序允许我们为每个服务分配不同的用户帐户。
对于开发环境,我们将使用域用户,本地用户,NT Authority \ NETWORK SERCVICE,NT Authority \ Local System或者其他帐户,为什么?
解决方案
回答
这取决于。
- 本地系统-从来没有,这是一个很高的特权。
- 网络服务-也许,如果我们需要连接到网络资源,那是值得怀疑的。
- 本地服务-最好的选择,特权有限,不要解锁网络连接
- 本地互动用户?它是否真的需要具有登录权限或者充当用户?
- 域用户?天哪,除非我们正在从内部访问网络驱动器,否则不会。如果SQL运行amok,则针对该域对攻击者进行身份验证。
回答
无论它想用作默认值。改变那只是在以后麻烦。
回答
不建议使用本地系统,它是管理员等效的帐户,因此可能会导致利用管理员权限的可疑编码,生产环境中不允许使用管理员权限,因为注重安全的管理员/ DBA确实不喜欢以管理员身份运行服务。
根据服务器实例是否需要访问其他域资源,应确定应以哪种类型的低特权帐户运行。
如果它不需要访问任何(非匿名)域资源,那么我通常会为其创建一个唯一的本地低特权帐户以获取其运行权限,从而获得在同一身份上下文中不运行多个服务的额外安全优势。 。请注意,SQL Server或者SQL Server代理服务不支持本地服务帐户。
如果确实需要访问非匿名域资源,那么我们有三个选择:
- 作为网络服务运行,它也是一个低特权帐户,但保留计算机的网络凭据。
- 在本地服务帐户下运行
- 在本地特权较低的自定义域帐户下运行。在开发人员帐户下运行的一个优点是,在不损害安全性的情况下,更容易将调试器添加到我们自己的身份中,因此调试更加容易(因为非管理员帐户默认没有特权将调试器添加到另一个身份过程)。使用另一个域帐户的一个缺点是管理这些帐户的开销,特别是因为理想情况下,每个开发人员的每个服务都应具有唯一的凭据,因此,如果要离开开发人员,则不会有任何泄漏。
我倾向于执行的大多数操作都不需要该服务访问域资源,因此我倾向于使用自己管理的唯一本地低特权帐户。我还以非管理员用户的身份专门运行(并且在XP SP2,Server 2003,Vista和Server 2008下都没有出现重大问题),因此当我需要服务来访问域资源时,就不用担心了有关使用我自己的域凭据的信息(再加上这种方式,我不必担心网络管理员会创建/维护一堆非生产域身份)。