好的人,
我的公司主持了不less网站。 这些网站都需要连接到SQL Server 2008。
当我们将一个站点部署到一个新的服务器时,我们经常不得不修改web.config来包含一个连接string和适当的用户名和密码。 这需要部署的人员为该数据库设置具有所有适当权限的用户,然后修改configuration文件。
我想要做的是,而不是为每个数据库创build一个用户,创build一个用户有权限的每个数据库,而不是在configuration中指定用户名和密码。 这样可以节省很多时间,我相信这会更安全(客户端可以通过ftp访问web.config,但是很多时候我们不希望他们在db中)。
此外,这必须在SQL Server存在于当前域之外的情况下工作。 这听起来像这可能会削弱使用Windows集成安全性…
我从来没有使用任何设置,除了指定用户名和密码(映射的Windows域用户访问)。 这听起来像我需要使用Windows集成安全性,但我无法findIIS 7上的任何MSDN。
任何人的安全和设置的想法将不胜感激。
集成的身份validation是你正在寻找,但是这开始变得棘手,当不在一个域中。 特别是在使用Windows 2008时。 它不喜欢不在域名的机器之间的Windows身份validation。
假设您坚持集成身份validation,您可以将每个站点设置为在其自己的应用程序池中运行,并将每个应用程序池设置为在其自己的帐户下运行,以便帐户无权访问其他数据库。
如果客户有权访问networking服务器的FTP,他们可以上传允许他们查看其他客户数据的文件,这是一个很大的禁忌。
从安全的angular度来看,把一切都视为一个帐户是一个不好的计划。 每个客户的帐户(Windows或SQL)是一个更好的使用计划。
你在正确的轨道上。 您正在寻找的是集成身份validation。 从这里获取集成身份validation连接string: http : //www.connectionstrings.com/sql-server-2008 。
在IIS7中,为站点运行的应用程序池创build一个自定义域用户。 为确保最佳的安全性,请确保每个网站都有自定义用户的应用程序池。 请确保授予该用户对磁盘的访问权限,以便该网站正常工作。 然后,授予该自定义用户对数据库的访问权限(使用Windows身份validation)。 更简单如果您使用域用户,尽pipe您可以使用本地用户,只要IIS和SQL服务器上的用户名和密码相同即可。
本质上这意味着应用程序池用户将连接到SQL Server,而不是在连接string中的特定用户名和密码。