google-bigquery - BigQuery Web UI:显示存储过程的结果需要哪些权限?
问题描述
我们正在为我们的客户在 BigQuery 中创建一些托管用户。这些托管用户BigQuery Job User
在项目中具有角色,并且BigQuery Data Viewer
在数据集上具有角色。
最近我们正在试验存储过程 (SP),并根据https://cloud.google.com/blog/products/data-analytics/command-and-control-now-easier-in-bigquery-with创建了一个存储过程-脚本和存储过程
管理员用户 ( )在 BigQuery Web UI 中执行 SP 和查看查询结果BigQuery.Owner
没有问题。CALL some_dataset.some_sp(param);
但是,当托管用户在 BigQuery Web UI 中运行相同的 SPCALL some_dataset.some_sp(param);
时,它会返回“作业状态:成功”,但不会显示结果。
我已经确认SP的结果不为空。
当我检查查询历史时,托管用户确实看到“目标表:临时表”,并且此“临时表”包含正确的查询结果。问题是当托管用户运行 SP 时,这些结果未显示在 Web UI 编辑器下方。用户必须去查询历史才能找到它们。
此问题不会发生在常规 SQL 查询中,例如select * from some_table/some_view;
. 常规查询结果正确显示在 Web UI 编辑器下方。
显示存储过程的结果需要哪些权限?我无法从 Google BigQuery 文档中找到任何相关信息。
解决方案
对于具有以下权限的托管用户,我的需求与您的情况相同:
- 项目级 BQ 作业用户权限
- 数据集级 BQ 数据查看者权限。
调用存储过程时,没有结果,只显示“作业状态:成功”。感谢您之前对“查询历史/临时表”的想法。但缺点是我们无法将结果保存为普通查询作业。经过几次测试,这是我的解决方案:
- 创建具有权限的项目级自定义角色:bigquery.jobs.list
- 将自定义角色分配给用户
现在用户可以像正常查询过程一样直接看到SP结果;而他只能看到自己的个人查询历史,这是我想要的最小权限控制
推荐阅读
- wordpress - Wordpress 中是否有设置标题的功能
- python - 单击并按住不起作用。硒,蟒蛇
- loops - 如何在单独的文件中显示来自 awk rand() 循环的每个结果?
- ios - iOS 应用开发 - 更改第三方应用上的图标
- javascript - 没有海报的视频html5的预览缩略图?角
- c++ - 将浮点数舍入到更小的精度
- python - 找不到如何编译自定义 MIB 以在我的简单 python SNMP 工具中使用
- javascript - Javascript:你能检查一个对象是否有一个包含另一个键的键
- elasticsearch - 按查询 API 删除会抛出类型 [[_delete_by_query,尝试自动创建映射,但动态映射已禁用]] 缺失]
- azure - 日志分析工作区中的 Azure DB 同步日志