sql-server - 如何将 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)。
所以我的问题是:
- 如何配置 ADFS 以使用 SQL 身份验证? 或者
- 如何创建正确的权限?
解决方案
ADFS 不支持其他身份验证方法 - 仅支持集成安全性。ADFS 将使用为 ADFS Windows 服务配置的数据库连接凭据。通常,您可以使用 Windows 身份验证连接另一个域中的 SQL 服务器。请检查此链接以获取您收到的错误消息,看看它是否有帮助
推荐阅读
- ms-access - 如何使用 Access VBA 获取表的大小?
- javascript - 切片未定义(在循环中对 Array 中的字符串进行切片时)
- firebase - 我无法列出已添加到购物车的食物
- powershell - 为什么我不能在 powershell 中使用 selenium 实例化 chromeoptions 对象?
- sql - Google Data Studio 上的案例
- android - 自定义 coordinatorlayout 行为 + 嵌套滚动
- ruby-on-rails - Rails 5.2 credentials.yaml.enc 和 master.key 在 Heroku 上不起作用
- java - 为字符串“008949679851”引发 java.lang.NumberFormatException
- android - Android Room 多个相同类型的嵌入字段
- javascript - SunburstR 图的 Javascript 排序