BigQuery Web UI:显示存储过程的结果需要哪些权限?
Posted
技术标签:
【中文标题】BigQuery Web UI:显示存储过程的结果需要哪些权限?【英文标题】:BigQuery Web UI: Which permissions are required to display results from stored procedures? 【发布时间】: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 文档中找不到任何相关信息。
【问题讨论】:
这感觉像是 UI 上的一个错误,您能否在此处触发 BigQuery 上的错误:cloud.google.com/support/docs/issue-trackers? 【参考方案1】:对于具有以下权限的托管用户,我的需求与您的情况相同:
-
项目级 BQ 作业用户权限
数据集级 BQ 数据查看者权限。
调用存储过程时,没有结果,只显示“Job status: SUCCESS”。感谢您之前对“查询历史/临时表”的想法。但缺点是我们无法将结果保存为普通查询作业。经过几次测试,这是我的解决方案:
创建具有以下权限的项目级自定义角色:bigquery.jobs.list 为用户分配自定义角色现在用户可以像正常查询过程一样直接看到SP结果;而他只能看到自己的个人查询历史,这是我想要的最小权限控制
【讨论】:
以上是关于BigQuery Web UI:显示存储过程的结果需要哪些权限?的主要内容,如果未能解决你的问题,请参考以下文章
如何更改 BigQuery 控制台(Web UI)中的默认选项,尤其是取消选中“使用旧版 SQL”?