【问题标题】:BigQuery Web UI: Which permissions are required to display results from stored procedures?BigQuery Web UI:显示存储过程的结果需要哪些权限?
【发布时间】:2020-09-23 02:08:08
【问题描述】:

我们正在为我们的客户在 BigQuery 中创建一些托管用户。这些托管用户在项目中具有角色BigQuery Job User,在数据集上具有角色BigQuery Data Viewer

最近我们在试验存储过程(SP),根据https://cloud.google.com/blog/products/data-analytics/command-and-control-now-easier-in-bigquery-with-scripting-and-stored-procedures创建了一个存储过程

管理员用户 (BigQuery.Owner) 可以毫无问题地执行 SP CALL some_dataset.some_sp(param); 并在 BigQuery Web UI 中查看查询结果。

但是,当托管用户在 BigQuery 网页界面中运行相同的 SP CALL some_dataset.some_sp(param); 时,它会返回“作业状态:成功”,但不会显示结果。

实际行为:

预期行为:

我已经确认SP的结果不为空。

当我检查查询历史时,托管用户确实看到了“目标表:临时表”,并且此“临时表”包含正确的查询结果。问题是当托管用户运行 SP 时,这些结果未显示在 Web UI 编辑器下方。用户必须去查询历史才能找到它们。

此问题不会发生在像 select * from some_table/some_view; 这样的常规 SQL 查询中。常规查询结果在 Web UI 编辑器下方正确显示。

显示存储过程的结果需要哪些权限?我在 Google BigQuery 文档中找不到任何相关信息。

【问题讨论】:

标签: google-bigquery


【解决方案1】:

对于具有以下权限的托管用户,我的需求与您的情况相同:

  1. 项目级 BQ 作业用户权限
  2. 数据集级 BQ 数据查看者权限。

调用存储过程时,没有结果,只显示“Job status: SUCCESS”。感谢您之前对“查询历史/临时表”的想法。但缺点是我们无法将结果保存为普通查询作业。经过几次测试,这是我的解决方案:

  • 创建具有以下权限的项目级自定义角色:bigquery.jobs.list
  • 为用户分配自定义角色

现在用户可以像正常查询过程一样直接看到SP结果;而他只能看到自己的个人查询历史,这是我想要的最小权限控制

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-11-12
    • 2014-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-28
    • 1970-01-01
    相关资源
    最近更新 更多