我需要授予某人执行bigquery存储过程的权限,但我不想授予他们roles/bigquery.admin,我宁愿通过自定义角色仅授予所需的权限。
这让我质疑存储过程的执行者是谁。我有 SQL Server 背景,并且有一个选项可以让存储过程作为所有者执行,这意味着它作为存储过程的所有者运行,从而分配给该所有者的权限......但我不认为BigQuery 中有类似的东西。
简而言之,如何授予某人执行存储过程的权限?我是否需要向执行存储过程的人授予对受存储过程影响的数据集的适当权限?
我仔细阅读了文档,主要是https://cloud.google.com/iam/docs/understanding-roles#bigquery-roles,但我找不到任何可以澄清此问题的内容。
您所描述的“它作为存储过程的所有者运行,因此分配给该所有者的权限”类似于“授权例程”的概念。截至 2023 年 9 月,授权例程支持存储过程。
关于所需权限,执行存储过程或UDF需要
bigquery.routines.get
权限。这是由 roles/bigquery.metadataViewer
和/或 roles/bigquery.dataViewer
提供的。此外,如果它不是授权例程,那么查询用户还需要对受存储过程影响的数据集具有适当的权限。
资源: