Excel 没有从 SQL 服务器获取数据

Excel not getting data from SQL Server

我们有专门的云服务器托管 SQL Server 2014 和 Microsoft Dynamics CRM 2016,运行没有问题。

我有一个从 FilteredOpportunities 视图中获取数据的查询,我可以 运行 在 SQL Server Management Studio 中作为 windows 用户而不是SQL 用户(仅显示列名),当我尝试使用 sql 用户(不能使用 windows 身份验证,因为它不在同一个域中),它只有 returns 列名,没有其他。

该帐户拥有您可能想到的所有权限,可以尝试获取数据,但它不会让步。

您无法使用 SQL 用户查询 CRM 的过滤视图。为此,您需要使用 windows 用户。

如果想直接查询SQL-用户,可以使用底层dbo.OpportunityBase-table。这不会应用 CRM 安全模型。

相反,您可能需要考虑使用一种 CRM 网络服务来支持对数据的访问,并强制执行安全模型。如果你的目的是获取数据到Excel,直接支持使用web服务。参见 Export to an Excel dynamic worksheet

我找到了答案。它有点笨拙。我可以使用 SQL 用户连接到数据库(因为我不能使用 windows 身份验证,因为我在不同的域中)然后我可以将代码添加到现有代码的顶部以模拟用户读取数据的权利。对于那些想知道代码是:

DECLARE  @uid uniqueidentifier

SET @uid = convert(uniqueidentifier, '((UID of the user you want to impersonate))')

SET CONTEXT_INFO @uid