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



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

我想像角色一样自动删除,数据集名称和电子邮件来自UI作为输入,python代码应该将角色更新到特定请求的数据集。感谢你的帮助。

我可以使用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.AccessEntry的官方文档。

最新更新