首页 > 解决方案 > 如何将 ADFS 连接到不同域中的 SQL 数据库?

问题描述

我们有 2 个域。第一个包含技术服务器、数据库等,第二个包含支持服务器。他们不能互相信任(公司规则)。在域 2 中配置 ADFS 时,我需要连接到域 1 中的 SQL 2016 数据库。但 ADFS 连接使用 Windows 身份验证,因此出现错误。
我创建脚本: Export-AdfsDeploymentSQLScript -DestinationFolder "C:\SQLScript" –ServiceAccountName Domain2\ADFS CreateDB.sql工作正常,但Set-Permissions.sql完成但出现错误

消息 15004,级别 16,状态 1,过程 sp_validname,第 61 行,名称不能为 NULL。

我认为这是因为他没有找到具有相同 sid 的用户。正确的?在 SQL 脚本中是这样的:

声明@hex_account_sid varbinary(85) 设置@hex_account_sid =0x010500000000000515000000EDF2C8FA8D26A855458E07EB50040000

声明 @service_account 系统名 SELECT @service_account = SUSER_SNAME(@hex_account_sid)

我认为可以创建具有相同 sid 的用户, CREATE LOGIN adfs_service with password='123456' , SID = 0x010500000000000515000000EDF2C8FA8D26A855458E07EB50040000; 但出现错误

消息 15419,提供的参数 sid 应为二进制 (16)。

所以我的问题是:

  1. 如何配置 ADFS 以使用 SQL 身份验证? 或者
  2. 如何创建正确的权限?

标签: sql-serveradfs

解决方案


ADFS 不支持其他身份验证方法 - 仅支持集成安全性。ADFS 将使用为 ADFS Windows 服务配置的数据库连接凭据。通常,您可以使用 Windows 身份验证连接另一个域中的 SQL 服务器。请检查此链接以获取您收到的错误消息,看看它是否有帮助


推荐阅读