Python BigQuery数据集如何从Dataset.AccessEntry中删除角色
我知道使用Google客户端库(dataset.AccessEntry),我们可以将角色更新为请求用户()的特定数据集。但是想知道当角色发生变化(从读卡器到写卡器/所有者等)时,如何删除该访问权限Python BigQuery数据集如何从Dataset.AccessEntry中删除角色,python,google-bigquery,Python,Google Bigquery,我知道使用Google客户端库(dataset.AccessEntry),我们可以将角色更新为请求用户()的特定数据集。但是想知道当角色发生变化(从读卡器到写卡器/所有者等)时,如何删除该访问权限 我想自动执行此删除操作,如角色、数据集名称和电子邮件作为输入来自UI,python代码应将角色更新为特定请求的数据集。感谢您的帮助。我可以使用remove()方法从dataset.AccessEntry中删除条目,该方法从Python列表中删除第一个匹配元素(作为参数传递)。您需要为要删除的相应条目指
我想自动执行此删除操作,如角色、数据集名称和电子邮件作为输入来自UI,python代码应将角色更新为特定请求的数据集。感谢您的帮助。我可以使用
remove()
方法从dataset.AccessEntry
中删除条目,该方法从Python列表中删除第一个匹配元素(作为参数传递)。您需要为要删除的相应条目指定项目
,数据集名称
和角色
,实体类型
,实体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
从google.cloud.bigquery.dataset导入DatasetReference
项目=“”
bq=bigquery.Client(project=project)
dsinfo=bq.get\u数据集(“”)
#指定将失去对数据集访问权限的条目
entry=bigquery.AccessEntry(
角色=”,
实体类型=”,
实体_id=“”,
)
如果在dsinfo.access\u条目中输入:
条目=列表(dsinfo.access\u条目)
条目。删除(条目)
dsinfo.access\u entries=条目
dsinfo=bq.update_数据集(dsinfo,[“访问_条目”])
其他:
打印(“在dsinfo.access\u条目中找不到条目”)
打印(dsinfo.access\u条目)
你可以找到google.cloud.bigquery.dataset.AccessEntry的官方文档是的,remove()方法对我很有效!!!我真的不知道AccessEntry有列表类型。谢谢你的帮助。