我有一个Web服务,将数据存储在本地SQL Server 2008数据库中 . 如果我在我的帐户下运行Web服务,则Web服务可以成功访问数据库 . 但是,如果我使用DefaultAppPool(IUSR)帐户,则从Web服务访问数据库失败 .
如何在SQL Server上设置安全性以允许通过IIS访问特定数据库?
我得到的具体错误消息是:用户'IIS APPPOOL \ DefaultAppPool'登录失败
你有两个选择(显然可能!):
而不是使用Windows Integrated Security而是使用SQL身份验证 .
如果您不想这样做,则必须在SQL Server中创建与该Windows帐户相关的新用户 .
或(第三个选项)您可以将Web服务更改为在您知道有效的帐户下运行 .
我通常在域用户帐户下运行应用程序池,这样您就可以控制服务器上每个站点的特定用户 .
如果我不能使用域帐户,我将以“网络服务”运行该站点 - 与SQL中的对应的用户将是机器帐户(MACHINENAME $ - 用您的IIS服务器名称替换“machinename” “) .
如果您计划使用新的IIS7 IIS用户(不是Windows用户),则必须使用SQL身份验证而不是Windows身份验证来进行SQL数据库访问 .
2 回答
你有两个选择(显然可能!):
而不是使用Windows Integrated Security而是使用SQL身份验证 .
如果您不想这样做,则必须在SQL Server中创建与该Windows帐户相关的新用户 .
或(第三个选项)您可以将Web服务更改为在您知道有效的帐户下运行 .
我通常在域用户帐户下运行应用程序池,这样您就可以控制服务器上每个站点的特定用户 .
如果我不能使用域帐户,我将以“网络服务”运行该站点 - 与SQL中的对应的用户将是机器帐户(MACHINENAME $ - 用您的IIS服务器名称替换“machinename” “) .
如果您计划使用新的IIS7 IIS用户(不是Windows用户),则必须使用SQL身份验证而不是Windows身份验证来进行SQL数据库访问 .