如何查看GCP中所有用户的角色与权限(含数据集级权限用户)
查看Google Cloud全层级IAM权限(含数据集/表级别)
你已经知道可以通过以下命令查看项目级别的所有用户及其角色:
gcloud projects get-iam-policy <project-id>gcloud projects get-ancestors-iam-policy <project-id>
但这类命令无法覆盖仅拥有数据集或表级别权限的用户。要查看全范围的权限(包括项目、数据集、表各层级),可以按以下方式操作:
1. 查看数据集级别权限
使用BigQuery命令行工具bq查看指定数据集的IAM策略:
# 查看简洁的权限列表 bq show --format=prettyjson <project-id>:<dataset-id> | jq '.access' # 获取完整的IAM政策详情 bq get-iam-policy <project-id>:<dataset-id>
2. 查看表级别权限
针对单个表,执行以下命令:
# 查看简洁的权限列表 bq show --format=prettyjson <project-id>:<dataset-id>.<table-id> | jq '.access' # 获取完整的IAM政策详情 bq get-iam-policy <project-id>:<dataset-id>.<table-id>
3. 批量遍历所有数据集和表
如果要一次性获取项目下所有数据集和表的权限,可结合shell脚本批量处理:
# 遍历当前项目下所有数据集 for dataset in $(bq ls --format=csv | awk -F ',' 'NR>1 {print $1}'); do echo "=== 数据集 ${dataset} 的权限信息 ===" bq get-iam-policy ${dataset} # 遍历当前数据集下所有表 for table in $(bq ls --format=csv ${dataset} | awk -F ',' 'NR>1 {print $1}'); do echo "--- 表 ${dataset}.${table} 的权限信息 ---" bq get-iam-policy ${dataset}.${table} done done
4. 通过Cloud Console可视化查看
如果偏好图形界面,可直接在Google Cloud控制台操作:
- 进入BigQuery控制台,定位到目标数据集或表
- 点击数据集/表名称右侧的分享按钮
- 在弹出的权限管理窗口中,查看所有拥有权限的用户、角色及对应的权限范围
内容的提问来源于stack exchange,提问作者Sander van den Oord
相关产品推荐
相关产品推荐

