我在Excel2016中工作并生成了一个PowerQuery来从数据库中获取信息,这个服务器/数据库是从工作簿中的命名字段填充的,当在某些机器上运行时(各种机器正在进行Excel开发,多个帐户)这样可以正常执行,但是QA计算机出现以下错误。
"查询' TaskIdProc' (步骤' 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 :(得分:0)
该错误意味着该步骤使用了两个隐私级别不兼容的源。例如,如果您当前的工作簿标记为“私有”,但您的SQL数据库已标记为“组织”,则评估将被阻止,因为您要将信息从专用数据源发送到不太敏感的数据源(数据库)。
为什么你会在某些机器而不是其他机器上看到它,有几种可能性:
您可以通过转到“选项”,单击“全局”标题下的“隐私”并查看“隐私级别”下选择的内容来检查是否是第一种情况。
对于第二种情况,您可以通过转到数据源设置,选择数据源,然后单击编辑权限来检查特定来源的隐私级别。