BigQuery数据集如何从Dataset.AccessEntry中删除角色

2024-10-02 12:25:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我知道,使用Google客户端库(dataset.AccessEntry),我们可以将角色更新为请求用户(Reference)的特定数据集。但是想知道当角色发生变化(从读卡器到写卡器/所有者等)时,如何删除该访问权限

我想自动执行此删除操作,如角色、数据集名称和电子邮件作为输入来自UI,python代码应将角色更新为特定请求的数据集。谢谢你的帮助


Tags: 数据代码用户名称权限角色ui客户端
1条回答
网友
1楼 · 发布于 2024-10-02 12:25:10

我可以使用remove()方法从dataset.AccessEntry中删除条目,该方法从Python中的列表中删除第一个匹配元素(作为参数传递)。您需要为要删除的相应条目指定PROJECTDATASET_NAMEroleentity_typeentity_id

from google.cloud import bigquery
from google.cloud.bigquery.dataset import DatasetReference

PROJECT='<PROJECT_NAME>'

bq = bigquery.Client(project=PROJECT)
dsinfo = bq.get_dataset("<DATASET_NAME>")

#Specify the entry that will loose access to a dataset
entry = bigquery.AccessEntry(
    role="<ROLE>",
    entity_type="<ENTITY_TYPE>",
    entity_id="<EMAIL>",
)

if entry in dsinfo.access_entries:
    entries = list(dsinfo.access_entries)
    entries.remove(entry)
    dsinfo.access_entries = entries
    dsinfo = bq.update_dataset(dsinfo, ["access_entries"])
else:
    print("Entry wasn't found in dsinfo.access_entries")

print(dsinfo.access_entries)

您可以找到google.cloud.bigquery.dataset.AccessEntryhere的官方文档

相关问题 更多 >

    热门问题