Авторизация

Основные понятия

Авторизация в YDB основана на понятиях:

Независимо от метода аутентификации, авторизация всегда выполняется на серверной стороне YDB на основе хранящейся в ней информации об объектах и правах доступа. Права доступа определяют набор доступных для выполнения операций.

Авторизация выполняется на каждое действие пользователя: его права не кешируются, так как могут быть отозваны или предоставлены в любой момент времени.

Пользователь

Для создания, изменения и удаления пользователей YDB есть команды:

Примечание

Область действия команд CREATE USER, ALTER USER, DROP USER не распространяется на внешние каталоги пользователей.
Учитывайте это, если к YDB подключаются пользователи со сторонней аутентификацией (например, LDAP).
Например, команда CREATE USER не создаст пользователя в LDAP-каталоге.
Подробнее про взаимодействие YDB с LDAP-каталогом.

Примечание

Отдельно выделяется пользователь root с максимальными правами. Он создаётся при первоначальном развёртывании кластера, в ходе которой ему нужно сразу установить пароль. В дальнейшем использование данной учетной записи не рекомендуется и следует завести пользователей с ограниченными правами.

Подробнее про первоначальное развертывание:

YDB позволяет работать с пользователями из разных каталогов и систем, и они отличаются SID с использованием суффикса.

Суффикс @<subsystem> идентифицирует «источник пользователя» или «auth-домен», внутри которых гарантируется уникальность всех login. Например, в случае аутентификации LDAP имена пользователей будут user1@ldap и user2@ldap.
Если указан login без суффикса, то имеются в виду пользователи, непосредственно созданные в кластере YDB.

Группа

Любого пользователя можно включить в ту или иную группу доступа или исключить из неё. Как только пользователь включается в группу, он получает все права на объекты базы данных, которые предоставлялись группе доступа.
С помощью групп доступа YDB можно реализовать бизнес-роли пользовательских приложений, заранее настроив требуемые права доступа на нужные объекты.

Примечание

Группа доступа может быть пустой, когда в неё не входит ни один пользователь.

Группы доступа могут быть вложенными.

Для создания, изменения и удаления групп есть следующие виды YQL запросов:

Права в YDB привязаны не субъекту, а к объекту доступа.

У каждого объекта доступа есть список разрешений — ACL (Access Control List) — он хранит все предоставленные субъектам доступа (пользователям и группам) права на объект.

По умолчанию, права наследуются от родителей потомкам по дереву объектов доступа.

Для управления правами служат следующие виды YQL запросов:

Для управления правами служат следующие CLI-команды:

Для просмотра ACL объекта доступа служат следующие CLI-команды:

Владелец объекта

У каждого объекта доступа есть владелец. Им по умолчанию становится субъект доступа, создавший объект доступа.

Примечание

Для владельца не проверяются списки разрешений на данный объект доступа.

Он имеет полный набор прав на объект.

Владелец объекта есть в том числе у кластера в целом и каждой базы данных.

Сменить владельца можно с помощью CLI команды chown.

Просматривать владельца объекта можно с помощью CLI команды describe.

Предыдущая
Следующая