我正在准备 Microsoft 考试 70-432 SQL Server 2008。在我读过的书中,强烈建议您为每个 SQL 服务使用单独的登录名。但我不明白使用单独的用户有什么好处?
如果有人对此有想法,请告诉我。
问候,fayalif
答案1
它提供了安全边界。SQL 引擎需要访问 SQL 代理不需要访问的内容。您应该只向任何帐户授予其所需项目的权限。
答案2
这是非常好的建议全部服务,而不仅仅是与 SQL Server 关联的服务。为运行的任何服务(除了操作系统本身自带的服务)创建自定义用户帐户是极好的建议。仅向服务的用户帐户授予服务所需的权限,并且不要使用同一用户帐户运行任何其他服务(除非绝对必要;设计良好的服务不应要求跨服务使用同一用户帐户)。
举例来说,假设攻击者发现服务 X 中存在缓冲区溢出漏洞。如果他能够利用该漏洞在服务 X 中运行任意代码,那么他现在就可以控制运行 X 的用户帐户。如果他对 Windows 系统编程有所了解,那么他就能快速访问在同一帐户下运行的任何其他服务。他还能够访问这些服务可以访问的任何网络资源,并可能从那里开始攻击其他机器。
使用同一帐户运行多个服务的另一个问题是,它容易聚集特权。这就像滚雪球:在用户帐户下运行的每个附加服务都需要一组不同的特权,因此您会发现自己必须为该用户帐户添加越来越多的特权。更不用说,与此同时,您还增加了越来越多的攻击者可以攻击的攻击面(更多服务)。您同时提供了更诱人的目标,同时削弱了您的防御能力。
高血压
答案3
安全性。如果您有两个不同的数据库,您可以分配不同的用户;这样,如果一个服务被黑客入侵,它只能访问自己的数据。当您分配不同的用户时,假定您也适当地配置文件安全性。