我们有专门的云服务器托管SQL Server 2014和Microsoft Dynamics CRM 2016,它可以正常运行。
当我尝试运行时,我有一个查询从FilteredOpportunities
视图中获取数据,我可以在SQL Server Management Studio中以Windows用户身份运行,但不能在SQL用户身上运行(仅显示列名称)它在我的笔记本电脑上的SQL Server Management Studio中使用sql用户(不能使用Windows身份验证,因为它不在同一个域中),它只返回列名而不是其他内容。
该帐户拥有您可能认为授予它的所有权限,以尝试获取数据,但它不会让步。
答案 0 :(得分:1)
您无法使用SQL用户查询CRM的过滤视图。为此,您将需要使用Windows用户。
如果要直接向SQL用户查询,可以使用底层的dbo.OpportunityBase-table。这不适用于CRM安全模型。
相反,您可能需要考虑使用其中一个CRM Web服务来强制执行安全模型,以支持对数据的访问。如果您的目的是将数据导入Excel,则直接支持使用Web服务。请参阅Export to an Excel dynamic worksheet。
答案 1 :(得分:0)
我找到了答案。它的工作有点笨拙。我可以使用SQL用户连接到数据库(因为我不能使用Windows身份验证,因为我在不同的域上)然后我可以在我的现有代码的顶部添加代码来模拟具有读取数据权限的用户。对于那些想知道代码是:
DECLARE @uid uniqueidentifier
SET @uid = convert(uniqueidentifier, '((UID of the user you want to impersonate))')
SET CONTEXT_INFO @uid