какие исходящие привилегии в снежинке - PullRequest
2 голосов
/ 05 марта 2020

В снежинке предоставлена ​​документация о владении , имеется ссылка на "исходящие привилегии".

Что такое "исходящие привилегии?

Это часть дополнительных параметр «копировать / отзывать текущие права доступа».

В нем говорится: «Передает право собственности на объект вместе с копией любых существующих исходящих привилегий для объекта.»

Я пытаюсь выяснить, что такое "исходящие привилегии".

РЕДАКТИРОВАТЬ : Вот тест, который я провел. Я не вижу разницы.

create or replace view sandbox.test_schema.my_test_view
as
select 1 a;

grant ownership on view sandbox.test_schema.my_test_view to role ABC

show grants on view sandbox.test_schema.my_test_view

Привилегия = право собственности; grant_to = ROLE; grantee_name = ABC; grant_option = true; grant_by = AB C

, если я добавляю копию, предоставляет

Если вместо этого я запускаю все точно так же, за исключением копирования прав доступа

grant ownership on view sandbox.test_schema.my_test_view to role ABC copy current grants

Результат отображения грантов в представлении идентичен.

Есть ли пример, где "копирование текущих грантов" имеет значение?

1 Ответ

1 голос
/ 05 марта 2020

«Исходящие привилегии» означают существующие привилегии (текущие привилегии) ​​для объекта.

Итак, вы обновили свой образец и спросили, есть ли пример, где «копирование текущих грантов» имеет значение?

Предположим, что есть другая роль (DEF), и мы предоставили выбор в образце view:

create role DEF;
grant select on sandbox.test_schema.my_test_view to role DEF;

В этом случае следующая команда не сможет сказать: «SQL ошибка выполнения: Зависимое предоставление привилегии« SELECT »для защищаемого« SANDBOX.TEST_SCHEMA.MY_TEST_VIEW »роли« DEF »существует ":

grant ownership on view sandbox.test_schema.my_test_view to role ABC;

Чтобы решить эту проблему:

1) Мы можем удалить существующие гранты вручную и повторить первый оператор:

revoke select on sandbox.test_schema.my_test_view from role DEF;
grant ownership on view sandbox.test_schema.my_test_view to role ABC;

2) Мы можем удалить существующие гранты автоматически:

grant ownership on view sandbox.test_schema.my_test_view to role ABC revoke current grants;

3) Мы можем сохранить существующие гранты при смене владельца:

grant ownership on view sandbox.test_schema.my_test_view to role ABC copy current grants;

Таким образом, «COPY / REVOKE current Гранты» имеют значение, если есть существующие гранты на объект.

...