2016-12-20 96 views
0

我們有專門的託管SQL Server 2014和Microsoft Dynamics CRM 2016的雲服務器,它的工作沒有問題。Excel沒有從SQL Server獲取數據

我有一個查詢從FilteredOpportunities視圖獲取數據,我可以在SQL Server Management Studio中作爲Windows用戶運行,但不是SQL用戶(僅顯示列名稱),當我嘗試在SQL中運行它時我的筆記本電腦上的服務器管理工​​作室使用SQL用戶(不能使用Windows身份驗證,因爲它不在同一個域),它只返回列名稱,沒有別的。

該帳戶擁有您可能認爲授予其嘗試獲取數據但無法預算的所有權限。

+0

你是說SSMS在任何機器/帳戶上運行時都不會返回正確的結果,或者只是你的筆記本電腦遇到問題? –

+0

無論帳戶SSMS只返回列名。我沒有其他機器可以測試它。 –

+0

但是,當查詢在服務器上運行時,它很高興 –

回答

1

您無法使用SQL用戶查詢CRM的過濾視圖。爲此,您將需要使用Windows用戶。

如果要直接使用SQL用戶查詢,可以使用基礎dbo.OpportunityBase表。這不適用於CRM安全模型。

相反,您可能需要考慮使用其中一個CRM Web服務來支持對安全模型實施的數據訪問。如果您的目的是將數據導入Excel,則直接支持使用Web服務。見Export to an Excel dynamic worksheet

0

我找到了答案。有點笨重的作品。我可以與SQL用戶建立數據庫(因爲我不能使用Windows身份驗證,因爲我處於不同的域),那麼我可以將代碼添加到現有代碼的頂部以模擬具有讀取數據權限的用戶。對於那些想知道的代碼是:

DECLARE @uid uniqueidentifier 

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

SET CONTEXT_INFO @uid