这个问题可能介于 ServerFault 和 DBA 管理员之间,但其中的域元素促使我将其放在这里。
我们一直在开发 SOA 产品,并正在考虑在客户办公室为托管服务器部署不同的方案。这个问题的触发点是关于使用需要集成安全性的 SQL Server FILESTREAM 的讨论
SQL 登录不适用于 FILESTREAM 容器。只有 NTFS 身份验证才适用于 FILESTREAM 容器。文件流 MSDN
目前,FILESTREAM是我们使用集成安全性的唯一原因,这使得将域控制器(及其冗余要求)部署到管理器服务器的潜在要求变得毫无吸引力。
我环顾四周,发现有几个问题建议您使用具有集成安全性的工作组。
我的问题是,对于上述情况,是否有推荐的做法?我们是否应该尝试一下 WORKGROUP 安全性,看看效果如何,或者是否有理由认为这是绝对不行的,我们应该使用域或不使用 FILESTREAM?
答案1
总体而言,集成安全(又称可信连接)比 SQL 登录更安全,因此是首选。原因是需要连接到 SQL Server 的服务不需要在任何地方硬编码用户名和密码;它们只需以具有访问 SQL Server 权限的用户身份运行即可。
要使用集成安全性,不需要域。如果您管理多台计算机,则最好使用域,但如果服务器数量较少,则可以在每台服务器上使用本地用户。诀窍是共享用户在访问 SQL 数据的每台服务器上都需要具有相同的用户名和密码。例如,假设您在一台计算机上有 IIS Web 服务器,在另一台计算机上有 SQL Server。您可以在 Web 和 SQL Server 计算机上创建一个具有相同用户名和密码的用户,可能名为“IISUser”。然后在 SQL Server 中为该用户分配适当的权限,并在 Web 服务器上将 IIS 的应用程序池设置为与同一用户一起运行。由于这是使用集成安全性,因此不需要在任何配置文件中写入或存储用户名/密码,并且连接是安全的。
不幸的是,我无法回答您关于 FILESTREAM 的“是否有推荐的做法”的问题,但是我想说,您不应该仅仅因为想避免使用集成安全性而避免做您想做的事情。在我看来,无论如何您都应该使用集成安全性。我建议您尝试使用本地用户来处理您的情况。最终,域将比本地用户更好(它将更加安全且更易于管理),但我认为使用本地用户的集成安全性仍然比 SQL Server 登录更好。