集成安全性如何工作

Posted

技术标签:

【中文标题】集成安全性如何工作【英文标题】:How does integrated security work 【发布时间】:2014-08-18 11:51:02 【问题描述】:

最近我的公司发布了一个新的 SQL 标准文档。在这个新的标准文档中,我发现了以下行:

尽可能首选Windows集成安全

因此,我的新 wcf 网络服务有以下连接字符串(直接取自成功使用的网络应用程序):

<add name="ProcurementAdministrationPortalEntities"
     connectionString="metadata=res://*/ProcurementAdministrationPortalModel.csdl|res://*/ProcurementAdministrationPortalModel.ssdl|res://*/ProcurementAdministrationPortalModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=database-server;initial catalog=ProcurementAdministrationPortal_v2;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;"
     providerName="System.Data.EntityClient"/>

现在,当我尝试使用该服务时,出现以下错误:

异常:底层提供程序在打开时失败。

InnerException:用户“DOMAIN\D10604B77177C$”登录失败。

表示域/计算机名登录失败。这是否意味着运行web服务的机器需要添加到数据库的权限?我目前使用已添加到数据库中的帐户登录到所述机器上的 AD。帐户为“DOMAIN\ANEL5”。

【问题讨论】:

不是机器,而是账户或组,是的。 【参考方案1】:

当机器名称作为用户 ID 传递时,通常意味着您的应用程序池正在作为系统运行。如果 Integrated Security = true,它会尝试使用计算机对象 ID 登录。更改应用程序池以使用域用户 ID(我们有一个仅用于服务帐户的 OU)并为该域 ID 提供所需的 SQL 权限。

【讨论】:

以上是关于集成安全性如何工作的主要内容,如果未能解决你的问题,请参考以下文章

如何集成 Spring Security 和 GWT?

使集成的安全性和 CORS 与 Asp.Net、Angular 6 和 IIS 一起工作

SpringBoot集成SpringSecurity(一初体验)

如何指定具有集成安全性的用户 ID/密码?

如何在 Spring Boot 2.2.0 的集成测试中禁用安全性?

如何将 MS SSMS Express 连接到服务器(集成安全性)