2017-04-04 8 views
1

我在Excel2016中工作並生成PowerQuery以從數據庫獲取信息,此服務器/數據庫從工作簿中的命名字段填充,運行時一些機器(Excel開發發生在多個賬戶上的各種機器)執行得很好,但QA機器出現以下錯誤。電源查詢 - 不存在的列的權限

「查詢‘TaskIdProc’(step'AutoRemovedColumns1' )正在訪問具有不能一起使用的隱私級別的數據源。請重建該數據組合」

正在使用的代碼如下

let 
    ServerName = Text.From(Excel.CurrentWorkbook(){[Name="ServerName"]}[Content]{0}[Column1]), 
    DatabaseName = Text.From(Excel.CurrentWorkbook(){[Name="DatabaseName"]}[Content]{0}[Column1]), 
    TaskID = Text.From(Excel.CurrentWorkbook(){[Name="TaskName"]}[Content]{0}[Column1]), 
    Source = Sql.Database(ServerName,DatabaseName, 
        [Query="EXECUTE dbo.bsp_DeadlineHistoryByTaskID 
         @Task_ID_Param ='" & TaskID & "'" 
       ]), 
    #"Removed Columns" = Table.RemoveColumns(Source,{"TaskGuid", "Task_ID", "InitialDeadline"}), 
    #"Renamed Columns" = Table.RenameColumns(#"Removed Columns",{{"NewDeadline", "New Deadline"}, {"RequestedDeadline", "Requested Deadline"}, {"NewState", "State"}, {"ActionTaken", "Action"}, {"ReasonGiven", "Reason"}, {"UserName", "Who"}, {"ChangeTimeStamp", "When"}}), 
    #"Reordered Columns" = Table.ReorderColumns(#"Renamed Columns",{"New Deadline", "Difference", "State", "Action", "Reason", "Comment", "Who", "When", "Requested Deadline"}) 

in 
    #"Reordered Columns" 

正如你所看到的,在錯誤信息的步驟不查詢存在,而現在我已經撞南牆。 我已經嘗試確保每行僅使用一個數據源。 將所有數據連接都清除後,將其傳遞給QA。 確保導致問題的步驟不存在。

這是Excel的2016,需要向後兼容於2013年

回答

0

即錯誤意味着步驟使用兩個源與不相容的隱私級別在一起。例如,如果您當前的工作簿已標記爲「私有」,但您的SQL數據庫已標記爲「組織」,則評估將被阻止,因爲您正在將私人數據源的信息發送到不太敏感的數據源(數據庫)。

有爲什麼你看到它在某些機器一對夫婦的可能性,而不是別人:

  • 在那裏工作的機器隱私級別禁用全局,而仍處於啓用狀態的QA機器隱私級別。
  • 當前工作簿和SQL數據庫的隱私級別在質量檢查機器和其他機器之間是不同的。

您可以通過轉到選項,單擊全局標題下的隱私並檢查隱私級別下的選擇來檢查它是否是第一種情況。

對於第二種情況,您可以通過轉到數據源設置,選擇數據源並單擊編輯權限來檢查特定數據源的隱私級別。