【问题标题】:Connecting to Dynamics 365 TDS-enabled database with OLEDB Linked Server使用 OLEDB 链接服务器连接到支持 Dynamics 365 TDS 的数据库
【发布时间】:2022-06-17 17:13:45
【问题描述】:

我想在 Dynamics 365 数据库上运行 SQL Server 查询。

Dynamics 数据库的管理员为我启用了“TDS” - 现在我可以使用“Azure Active Directory - 密码”身份验证轻松连接 SSMS,并针对它运行 SQL SELECT。到目前为止,一切顺利!

但我也希望创建一个链接到 Dynamics 数据库的服务器,为此我知道需要 OLEDB?这是正确的做法吗?

希望如此,我下载了最新的 OLEDB 提供程序 MSOLEDBSQL19。我的测试查询使用 OLEDB,如下所示:

SELECT c.*
FROM OPENROWSET(
    'msoledbsql19'
    , 'Server={myServer};Database={myDatabase};UID={myUserId};Pwd={myPassword};Authentication=ActiveDirectoryPassword;'
    , 'SELECT name FROM dbo.account;'
    ) c;

但这会导致以下错误:

Failed to authenticate the user 'myUserId' in Active Directory (Authentication option is 'ActiveDirectoryPassword').
Error code 0xCAA20002; state 10
AADSTS65002: Consent between first party application 'db465503-d247-463e-8a13-95889346b742' and first party resource '00000007-0000-0000-c000-000000000000' must be configured via preauthorization - applications owned and operated by Microsoft must get approval from the API owner before requesting tokens for that API.

搜索“AADSTS65002”返回“您租户中的开发人员可能正试图重用 Microsoft 拥有的应用 ID。此错误阻止他们模拟 Microsoft 应用程序来调用其他 API。他们必须移至他们在 https://portal.azure.com 中注册的另一个应用 ID。"

我不了解 Azure AD 和 Dynamics,所以这对我来说有点莫名其妙 - 为什么尝试 Microsoft OLEDB 驱动程序会“重用 App ID”?

我需要在 SSMS 中进行更改吗?

还是 Azure/Dynamics 配置有问题?如果是这样,我需要将解决方案的详细信息传递给管理该解决方案的人员。

感谢您的帮助:)

【问题讨论】:

  • 我忘了提到使用带有 System.Data.SqlClient.SqlConnection 的 .NET 代码连接到 Dynamics 也没有问题,在 SSIS 中使用 ADO.NET 连接也没有问题。所以只是链接服务器仍然被证明是不可能的......
  • 顺便说一下,尝试这里概述的方法:stackoverflow.com/questions/71829584/… ...我得到与原始海报相同的错误:无法为链接服务器“AZURE”初始化 OLE DB 提供程序“MSOLEDBSQL”的数据源对象“......令人沮丧的是,这似乎如此困难 - 有没有人使用标准的 MS 驱动程序创建了一个链接服务器来做到这一点......?

标签: sql-server azure-active-directory dynamics-crm oledb


猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-03
  • 1970-01-01
  • 2018-01-21
  • 1970-01-01
相关资源
最近更新 更多