Power Query - 不存在的列的差异权限

时间:2017-04-04 15:05:14

标签: excel powerquery

我在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年。

1 个答案:

答案 0 :(得分:0)

该错误意味着该步骤使用了两个隐私级别不兼容的源。例如,如果您当前的工作簿标记为“私有”,但您的SQL数据库已标记为“组织”,则评估将被阻止,因为您要将信息从专用数据源发送到不太敏感的数据源(数据库)。

为什么你会在某些机器而不是其他机器上看到它,有几种可能性:

  • 全局禁用其工作的计算机上的隐私级别,同时仍启用QA计算机上的隐私级别。
  • 当前工作簿和SQL数据库的隐私级别在QA计算机和其他计算机之间是不同的。

您可以通过转到“选项”,单击“全局”标题下的“隐私”并查看“隐私级别”下选择的内容来检查是否是第一种情况。

对于第二种情况,您可以通过转到数据源设置,选择数据源,然后单击编辑权限来检查特定来源的隐私级别。