最近我的公司发布了一个新的SQL标准文档。在这个新的标准文件中,我发现了以下内容:
尽可能使用Windows集成安全性
因此,我的新wcf Web服务我有以下连接字符串(直接从成功使用的web-app中获取):
<add name="ProcurementAdministrationPortalEntities"
connectionString="metadata=res://*/ProcurementAdministrationPortalModel.csdl|res://*/ProcurementAdministrationPortalModel.ssdl|res://*/ProcurementAdministrationPortalModel.msl;provider=System.Data.SqlClient;provider connection string="data source=database-server;initial catalog=ProcurementAdministrationPortal_v2;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework""
providerName="System.Data.EntityClient"/>
现在,在尝试使用该服务时,我收到以下错误:
异常:基础提供程序在Open上失败。
InnerException:用户登录失败&#39; DOMAIN \ D10604B77177C $&#39;。
它说域名/计算机名称登录失败。这是否意味着运行Web服务的机器需要添加到数据库的权限中?我目前在所述计算机上登录AD,并在数据库中添加了一个帐户。该帐户为&#39; DOMAIN \ ANEL5&#39;。
答案 0 :(得分:2)
当计算机名称作为用户标识传递时,通常意味着您的应用程序池作为系统运行。使用Integrated Security = true,它会尝试使用计算机对象ID登录。更改应用程序池以使用域用户ID(我们只有服务帐户的OU)并为该域ID提供所需的SQL权限。