【发布时间】:2022-07-22 15:41:14
【问题描述】:
我尝试从我的本地 SQL Server SSRS 2019 连接到在线 Microsoft Azure SQL DB。
当我从我的 DBMS 本地连接到在线数据库时,它工作正常。 然而,一切都得到了 MFA 的保护。
不幸的是,我无法正确连接字符串,无法从 SSRS 2019 连接到我的 Azure SQL DB。
以下设置:
与 DBMS 的本地连接 - 工作正常
SQL Server Reporting Services 的共享连接 - 错误:
类型:微软 Azure SQL 数据库
验证:Azure Active Directory - MFA 通用
连接字符串:服务器=tcp:myDomain.dynamics.com,1234;身份验证=Active Directory 集成;数据库=myDb;
错误: 与服务器成功建立连接,但在登录过程中出现错误。 (提供者:TCP 提供者,错误:0 - 指定的网络名称不再可用。)
您知道如何修复连接字符串以连接到 Azure SQL DB 吗?
您知道将用户名和密码放入连接字符串的位置吗?
我是否应该尝试仅在没有 MFA 的情况下为 SSRS 建立数据库连接?
你会如何解决这个问题?
-
Authentication=Active Directory Interactive见docs.microsoft.com/en-us/azure/azure-sql/database/… -
如果您的本地 AD 与 Azure AD 联合(例如,通过 ADFS),\"Active Directory Integrated\" 确实也是一个问题。但即使是这种情况,也存在 MFA 的问题。 Active Directory 交互式将允许用户生成一个令牌(通过完成登录过程),该令牌可以被缓存和重复使用,直到它过期。但是“集成”正在使用您可能称之为“单点登录”的东西。如果您的组织设置了需要 MFA 的策略怎么办?我同意尝试 Charlieface 的建议。但这一切都很混乱,MS似乎不想说清楚。
-
相反,我可以使用没有 MFA 的应用程序用户,我想这就是要走的路。我只是想知道在应用程序用户的情况下连接字符串会是什么样子......
-
实际的解决方法是简单地使用 SQL 身份验证,它只是一个用户名和一个密码。
-
是的,我们使用 Nick 建议的解决方法。这很糟糕(tm),因为建议来自微软自己二十年来一直是“使用集成安全而不是 sql auth”。集成有明显的优势(如果您有行级安全性或其他需要知道实际用户是谁的逻辑呢??)但是我们来了。如果您的组织有“无 sql auth”政策,那么您将与您的系统管理员/开发人员团队进行一些艰难的对话。
标签: sql-server azure reporting-services connection-string ssrs-2019