2011-01-26 125 views
2

我有什么,我以为会是一个非常正常的情况下...IIS7.5验证到SQL Server 2008 R2登录

我有IIS7.5内AppFarbic主办的 -WCF客户 -WCF服务 - SQL Server 2008 R2的

IIS使用应用程序池标识

我从客户端使用下面的配置文件

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <system.serviceModel>  
     <client>    
      <endpoint 
       name="NetTcpBinding_IXXXService" 
       address="net.tcp://app02.xx.com/XXXService/XXXService.svc" 
       binding="netTcpBinding"     
       contract="XXXClient.IXXXService"> 
       <identity> 
        <servicePrincipalName value="host/app02.xx.com" />     
       </identity> 
      </endpoint> 
     </client> 
    </system.serviceModel> 
</configuration> 
连接运行

IIS正在使用应用程序池标识运行。

如果我创建\ $登录,我可以获得连接到数据库的服务。

当使用应用程序池标识时,这是使用Windows身份验证连接到数据库的唯一方法吗?

我认为这是允许此机器上的网络服务帐户访问数据库。我还假定这也意味着任何运行的服务都可以通过网络访问数据库?

是否有任何方式将应用程序池标识绑定到数据库登录?

编辑:当我更改应用程序池的用户成为另一个用户访问数据库,我得到一个SSPI失败错误

+0

只是为了澄清一点,是SQL服务器实例在同一台服务器上还是与服务不同的服务器? – DForck42 2011-01-26 22:44:04

回答

1

请原谅我以一个刺在这个时候,我不熟悉WCF或AppFarbic。虽然我知道一些关于IIS和身份验证到SQL服务器在不同的服务器上。

  1. 如果您使用基于用户名的安全性和密码,您可以连接到数据库吗?
  2. 您在网站上使用哪种身份验证方法?
  3. 如果您尝试使用集成Windows身份验证,并且您的Web身份验证方法也已​​集成,则必须在IIS中使用Kerberos安全性以允许通过网络将“第二跳”委派给SQL服务器。定期的NT安全是不够的,因为它只能做模拟,而不允许这样做。获得委派工作可能会让人感到痛苦,但是您必须检查您正在使用的SPN并确保它已在SQL Server上正确注册,并加上IIS的混乱以确保Kerberos已启用并实际工作正常它悄无声息地回到NTLM。 Web服务器还必须在域组策略中“可信委派”(假设您的Web服务器已加入到域中)。