Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
На этой странице описываются основные понятия модели разрешений каталога Unity, включая объектную модель, привилегии, владение и наследование.
Общие сведения обо всех привилегиях каталога Unity см. в справочнике по привилегиям каталога Unity. Инструкции по предоставлению и отмене привилегий см. в разделе "Показать", "Предоставить" и "Отозвать привилегии".
Защищаемые объекты
В каталоге Unity данные и метаданные живут в контейнере верхнего уровня, называемом хранилищем метаданных. В этом хранилище метаданных данные представлены как объекты в трехуровневом пространстве имен: catalog.schema.table. Эта иерархическая структура также предоставляет основу для управления доступом в каталоге Unity.
Каждый объект в этой иерархии является защищаемым объектом. Управление доступом в каталоге Unity работает путем предоставления привилегий, таких как SELECT, MODIFYили USE SCHEMAна этих защищаемых объектах. Эта модель обеспечивает точный контроль над доступом к данным и управлению ими в организации.
Полный список защищаемых объектов и привилегий, применяемых к каждому, см. в справочнике по привилегиям каталога Unity.
Объекты контейнеров
Некоторые защищаемые объекты в каталоге Unity — это объекты-контейнеры, то есть они содержат дочерние объекты в иерархии. Контейнеры играют особую роль в модели разрешений, так как привилегии, предоставленные им, могут через наследование повлиять на их дочерние объекты.
Ниже приведены объекты контейнеров в каталоге Unity.
- Каталоги: верхний уровень пространства имен трехуровневого уровня. Каталоги содержат схемы в виде прямых дочерних элементов.
- Схемы: средний уровень трехуровневого пространства имен. Схемы содержат таблицы, представления, тома и функции в качестве прямых дочерних элементов.
Объекты контейнеров имеют несколько важных характеристик:
| Характеристика | Description |
|---|---|
| Наследование привилегий | При предоставлении привилегии для объекта контейнера эта привилегия автоматически применяется ко всем текущим и будущим дочерним объектам. Например, предоставление SELECT каталога позволяет пользователям читать все таблицы в этом каталоге (с соответствующими привилегиями использования). См. наследование привилегий. |
| Привилегии использования | Для доступа к дочерним объектам требуется соответствующий USE CATALOG или USE SCHEMA привилегированный доступ к родительским объектам контейнера. См. сведения о привилегиях использования. |
| Возможность управления дочерними объектами | Если вы владеете объектом контейнера, вы автоматически получаете возможность управлять всеми дочерними объектами, даже если вы не владеете этими дочерними объектами напрямую. См . раздел "Ответственность". |
| Права на создание | Объекты контейнеров поддерживают привилегии, которые позволяют пользователям создавать дочерние объекты внутри них, например, привилегии CREATE SCHEMA на каталогах и CREATE TABLE на схемах. |
Неконтейнерные объекты, такие как таблицы, представления, тома и функции, не содержат дочерних объектов.
Privileges
Привилегии определяют действия, которые пользователь или группа могут выполнять в защищаемом объекте. К общим привилегиям относятся:
-
SELECT: чтение данных из таблиц или представлений -
MODIFY: запись данных в таблицы или представления -
USE CATALOG: доступ к каталогу (требуются дополнительные привилегии для работы с дочерними объектами) -
USE SCHEMA: доступ к схеме (требуются дополнительные привилегии для работы с дочерними объектами) -
CREATE TABLE: создание таблиц в схеме
Пользователю или группе необходимо явно предоставить привилегию для выполнения действия.
В следующих разделах описаны важные специальные привилегии в Azure Databricks. Для полного ознакомления со всеми привилегиями см. справочное руководство по привилегиям Unity Catalog.
Привилегии использования
USE CATALOG и USE SCHEMA являются привилегиями использования. Как правило, привилегии использования являются необходимым условием для взаимодействия с объектом и его дочерними объектами в иерархии.
Для работы с любым объектом в каталоге требуется USE CATALOG привилегия в каталоге. Для работы с любым объектом в схеме требуется привилегия USE SCHEMA на схему.
Например, для выполнения большинства операций с таблицами, представлениями, томами или функциями необходимо:
-
USE CATALOGв родительском каталоге -
USE SCHEMAв родительской схеме - Определенная привилегия для операции (например
SELECT,MODIFYилиEXECUTE)
Все три являются обязательными. Наличие только привилегии SELECT для таблицы недостаточно, чтобы иметь возможность её читать, если у вас нет USE CATALOG или USE SCHEMA на её родительских объектах.
Привилегии использования предоставляют важный механизм управления доступом для администраторов более высокого уровня. Например, даже если владелец таблицы хочет поделиться таблицей с другими пользователями, эти пользователи не могут получить доступ к таблице без USE CATALOG прав и USE SCHEMA привилегий для родительских объектов. Так как только владельцы каталогов и схем или пользователи с MANAGE привилегиями могут предоставить эти привилегии использования, это предотвращает предоставление владельцам таблиц доступа за пределами утвержденных границ.
В следующей таблице показаны распространенные операции и их необходимые привилегии:
| Операция | Необходимые привилегии |
|---|---|
| Чтение данных из таблицы или представления |
USE CATALOG в каталоге, USE SCHEMA в схеме, SELECT в таблице или представлении |
| Запись данных в таблицу |
USE CATALOG в каталоге, USE SCHEMA в схеме, MODIFY на таблице |
| Создание схемы в каталоге |
USE CATALOG в каталоге, CREATE SCHEMA на каталоге |
| Создание таблицы в схеме |
USE CATALOG в каталоге, USE SCHEMA в схеме, CREATE TABLE в схеме (или каталоге, если предоставлено на уровне каталога) |
| Выполнение функции |
USE CATALOG в каталоге, USE SCHEMA в схеме, EXECUTE в функции |
| Чтение файлов из тома |
USE CATALOG в каталоге, USE SCHEMA в структуре, READ VOLUME в томе |
ALL PRIVILEGES Поведение
ALL PRIVILEGES
подразумевает все применимые привилегии для определенного типа объекта без необходимости явного предоставления каждой отдельной привилегии в Azure Databricks. Рассмотрим пример.
-
ALL PRIVILEGESв таблице подразумевается возможность выполненияSELECT,MODIFY, а такжеAPPLY TAG. -
ALL PRIVILEGESв томе подразумевается возможность выполненияREAD VOLUME,WRITE VOLUME, иAPPLY TAG. -
ALL PRIVILEGESв схеме подразумевают все привилегии уровня схемы. -
ALL PRIVILEGESна каталоге обозначает все привилегии уровня каталога.
ALL PRIVILEGES не включает права EXTERNAL USE SCHEMA, EXTERNAL USE LOCATION или привилегии MANAGE.
Для получения дополнительной информации о том, как ALL PRIVILEGES вычисляется и отзывается, см. раздел ALL PRIVILEGES.
Привилегия MANAGE
Эта привилегия MANAGE позволяет пользователям управлять привилегиями, передавать права владения и удалять объект, не являясь владельцем. Наличие MANAGE похоже на владение, но есть некоторые важные различия. См.: 'Право собственности' против 'Привилегии'MANAGE.
Чтобы выполнить упражнение MANAGE, пользователям по-прежнему требуются соответствующие привилегии использования для объекта и всех его родительских объектов.
Если MANAGE разрешено для объекта-контейнера, пользователь также получает MANAGE на все дочерние объекты.
Полные сведения см. в разделе MANAGE.
Привилегия BROWSE
BROWSE позволяет пользователям обнаруживать объекты и просматривать их метаданные без предоставления доступа к базовым данным. Пользователи с BROWSE могут видеть, что объект существует, просматривать его имя, описание и теги, а также запрашивать доступ к нему без необходимости USE CATALOG или USE SCHEMA.
BROWSE предоставляется на уровне каталога и применяется ко всем объектам в этом каталоге. Databricks рекомендует предоставлять BROWSE на каталоги группе All account users, чтобы данные были доступны для поиска во всей организации.
Полные сведения см. в разделе ОБЗОР.
Владение
Каждый защищаемый объект в каталоге Unity имеет владельца. Владелец может быть пользователем, служебным принципалом или группой. Субъект, создающий объект, становится его первоначальным владельцем.
Владение имеет специальную денотацию в каталоге Unity. Владельцы объектов могут автоматически осуществлять все возможности для объектов, которые им принадлежат. Однако Azure Databricks явно не предоставляет ALL PRIVILEGES права владельцу. Это означает, что вы не увидите ALL PRIVILEGES возвращаемые разрешения при перечислении их с помощью API Databricks или команды SHOW GRANTS.
Владение не наследуется вниз в каталоге Unity. Однако владельцы объектов автоматически могут управлять всеми дочерними объектами. Например, если вы владеете каталогом, вы автоматически не владеете дочерними схемами в каталоге, но можно управлять всеми дочерними схемами. Как и владельцы, имеющие все возможности для своего объекта без явного наличия ALL PRIVILEGES, Azure Databricks также явно не предоставляет привилегии MANAGE в этом случае.
Владельцы объектов могут выполнять другие важные операции с объектом, включая предоставление и отзыв разрешений, передачу прав владения и удаление объекта.
Замечание
Чтобы избежать случайной утечки данных, владельцы схем по умолчанию не имеют привилегии EXTERNAL USE SCHEMA, а владельцы внешних расположений по умолчанию не имеют привилегии EXTERNAL USE LOCATION. См. раздел Включение доступа к внешним данным в каталоге Unity.
Чтобы свести к сводные данные, владелец объекта может выполнить следующие действия:
| Capability | Description |
|---|---|
| Все возможности объектов | Владельцы автоматически имеют все возможности в объекте, который они имеют. Это функционально эквивалентно тому, что у ALL PRIVILEGES, но Azure Databricks явно не назначает ALL PRIVILEGES владельцам. |
| Управление дочерними объектами | Владельцы автоматически получают возможность управлять всеми дочерними объектами. Функционально это равносильно наличию привилегии MANAGE на всех дочерних объектах, но Azure Databricks явно не назначает привилегию MANAGE владельцам. |
| Предоставление и отмена разрешений | Владельцы могут предоставлять и отзывать привилегии для объекта пользователям и группам |
| Передача владения | Владельцы могут передать владение своим объектом другому субъекту |
| Сброс объектов | Владельцы могут удалять принадлежащие им объекты |
Сведения о том, как просматривать и передавать владение, см. в разделе "Управление владением объектами".
Владение против привилегии MANAGE
Привилегия MANAGE предоставляет пользователю возможность предоставлять и отзывать привилегии для объекта. Он не предоставляет пользователю все права доступа к объекту. Однако пользователи с MANAGE могут явно предоставлять себе такие права доступа к данным, как SELECT.
В отличие от этого, владельцы объектов имеют все возможности для своего объекта по умолчанию. Поскольку владение не передается вниз к дочерним объектам, владельцы всё ещё нуждаются в явных разрешениях на эти дочерние объекты.
Пользователям с MANAGE привилегиями необходима соответствующая привилегия использования на уровне объекта, если это применимо, и для всех родительских объектов контейнера. Например, для осуществления MANAGE привилегии на схему, необходимо иметь USE SCHEMA на схему и USE CATALOG на родительский каталог. Чтобы предоставить разрешения для таблицы, необходимо иметь MANAGE в таблице, USE CATALOG в родительском каталоге и USE SCHEMA родительской схеме.
В следующей таблице приведены основные различия между владением и привилегией MANAGE :
| Capability | Владелец | Привилегия MANAGE |
|---|---|---|
| Все возможности объекта | Да, все возможности подразумеваются. Это отличается от явного наличия ALL PRIVILEGES. См . раздел "Ответственность". |
Нет, привилегии должны предоставляться отдельно. Пользователи с MANAGE правами могут предоставлять себе эти привилегии. |
| Предоставление и отмена привилегий для объекта | Да | Да |
| Передача владения | Да | Да |
| Удаление объекта | Да | Да |
| Возможность управления дочерними объектами | Да, подразумеваются возможности управления дочерними объектами. См . раздел "Ответственность". | Да, привилегия MANAGE явно предоставляется на дочерние объекты. |
| Требуются привилегии использования | нет | Да, требуются соответствующие USE CATALOG и USE SCHEMA привилегии |
| Количество субъектов | Только один субъект (пользователь, субъект-служба или группа) | Может быть предоставлено нескольким субъектам |
Чтобы избежать случайной эскалации привилегий, привилегия ALL PRIVILEGES не включает привилегию MANAGE.
Наследование привилегий
Замечание
Если вы создали хранилище метаданных каталога Unity во время общедоступной предварительной версии (до 25 августа 2022 г.), возможно, вы используете более раннюю модель привилегий, которая не поддерживает текущую модель наследования. Вы можете обновить модель привилегий до версии 1.0, чтобы получить наследование привилегий. См. Обновление до наследования привилегий.
Наследование привилегий является ключевым компонентом модели разрешений каталога Unity. При предоставлении привилегии родительскому объекту эта привилегия автоматически применяется ко всем текущим и будущим дочерним объектам. Это упрощает управление доступом, уменьшая количество отдельных разрешений, которые нужно предоставлять.
Привилегии наследуются вниз по иерархии объектной модели:
- Привилегия, предоставленная в каталоге, применяется ко всем схемам в этом каталоге, а также ко всем таблицам, представлениям, томам и функциям в этих схемах
- Привилегия, предоставленная схеме, применяется ко всем таблицам, представлениям, томам и функциям в этой схеме
Например, если вы предоставляете пользователю привилегию SELECT в каталоге, то пользователь может читать все таблицы и представления в этом каталоге (с соответствующими USE CATALOGUSE SCHEMA привилегиями использования).
Это важно
Привилегии, предоставленные в хранилище метаданных, не наследуются дочерним объектам. Гранты на уровне хранилища метаданных управляют операциями, охватывающими метахранилище, такими как CREATE CATALOG и CREATE EXTERNAL LOCATION, но не предоставляют доступ к данным в хранилище метаданных.
Владение не наследуется вниз в каталоге Unity. Как владелец объекта, вы автоматически предоставляете все привилегии только для этого объекта. Вы не автоматически берете на себя владение дочерними объектами, созданными в вашем объекте. Однако вы автоматически получаете привилегию MANAGE на все новые и существующие дочерние объекты.
Примеры наследования
Предположим, что вы предоставляете SELECT, USE CATALOG и USE SCHEMA на уровне каталога группе finance_team:
GRANT USE CATALOG, USE SCHEMA, SELECT ON CATALOG sales TO finance_team;
Этот грант позволяет finance_team группе:
- Доступ к каталогу
sales - Доступ ко всем схемам в каталоге
- Чтение данных из всех текущих и будущих таблиц и представлений в каталоге
Предположим, что вы предоставляете CREATE TABLE, USE CATALOG и USE SCHEMA на уровне каталога группе data_engineers:
GRANT USE CATALOG, USE SCHEMA, CREATE TABLE ON CATALOG analytics TO data_engineers;
Этот грант позволяет data_engineers группе:
- Доступ к каталогу
analytics - Доступ ко всем схемам в каталоге
- Создание таблиц в любой текущей или будущей схеме в каталоге
Инструкции по предоставлению и отмене привилегий см. в разделе "Показать", "Предоставить" и "Отозвать привилегии".