Набор данных BigQuery Как удалить роли из набора данных.AccessEntry - PullRequest
0 голосов
/ 06 мая 2020

Я знаю, что с помощью клиентской библиотеки Google (dataset.AccessEntry) мы можем обновить наши роли до указанного c набора данных для запрошенного пользователя ( Ссылка ). Но хочет знать, как удалить этот доступ, когда роли были изменены, например (с читателя на писателя / владельца и т. Д. c.).

Я хочу, чтобы это удаление выполнялось автоматически, так как роль, имя набора данных и адрес электронной почты поступают из пользовательского интерфейса в качестве входных данных, код python должен обновить роли до указанного c запрошенного набора данных. Цените вашу помощь.

1 Ответ

1 голос
/ 07 мая 2020

Я могу удалить запись из dataset.AccessEntry с помощью метода remove(), который удаляет первый совпадающий элемент (переданный в качестве аргумента) из списка в Python. Вам необходимо указать PROJECT, DATASET_NAME и role, entity_type, entity_id для соответствующей записи, которую нужно удалить sh.

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 здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...