---
metadata:
  - name: generator
    content: Diplodoc Platform v5.52.0
alternate:
  - https://ydb.tech/docs/en/security/authorization.md?version=v26.1
  - https://ydb.tech/docs/ru/security/authorization.md?version=v26.1
  - href: ru/security/authorization.md
    type: text/markdown
    title: Markdown version
  - href: ../llms.txt
    type: text/markdown
    title: llms.txt
sourcePath: ru/core/security/authorization.md
---
> **Documentation Index:** Fetch the complete configuration index at https://ydb.tech/docs/ru/llms.txt

# Авторизация

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

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

* [Объект доступа](https://ydb.tech/docs/ru/concepts/glossary.md?version=v26.1#access-object)
* [Субъект доступа](https://ydb.tech/docs/ru/concepts/glossary.md?version=v26.1#access-subject)
* [Права доступа](https://ydb.tech/docs/ru/concepts/glossary.md?version=v26.1#access-right)
* [Список доступов](https://ydb.tech/docs/ru/concepts/glossary.md?version=v26.1#access-acl)
* [Владелец](https://ydb.tech/docs/ru/concepts/glossary.md?version=v26.1#access-owner)
* [Пользователь](https://ydb.tech/docs/ru/concepts/glossary.md?version=v26.1#access-user)
* [Группа](https://ydb.tech/docs/ru/concepts/glossary.md?version=v26.1#access-group)

Независимо от метода [аутентификации](https://ru.wikipedia.org/wiki/Аутентификация), [авторизация](https://ru.wikipedia.org/wiki/Авторизация) всегда выполняется на серверной стороне YDB на основе хранящейся в ней информации об объектах и правах доступа. Права доступа определяют набор доступных для выполнения операций.

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

## Пользователь {#user}

Пользователи в YDB могут создаваться в разных источниках:

- локальные пользователи в базах данных YDB;
- внешние пользователи из сторонних служб доступа к каталогам.

Для создания, изменения и удаления [локальных пользователей](https://ydb.tech/docs/ru/concepts/glossary.md?version=v26.1#access-user) YDB есть команды:

* [CREATE USER](https://ydb.tech/docs/ru/yql/reference/syntax/create-user.md?version=v26.1)
* [ALTER USER](https://ydb.tech/docs/ru/yql/reference/syntax/alter-user.md?version=v26.1)
* [DROP USER](https://ydb.tech/docs/ru/yql/reference/syntax/drop-user.md?version=v26.1)

<!-- source: ru/_includes/do-not-create-users-in-ldap.md -->
{% note info %}

Область действия команд `CREATE USER`, `ALTER USER`, `DROP USER` не распространяется на внешние каталоги пользователей.
Учитывайте это, если к YDB подключаются пользователи со сторонней аутентификацией (например, LDAP).
Например, команда `CREATE USER` не создаст пользователя в LDAP-каталоге.
Подробнее про [взаимодействие YDB с LDAP-каталогом](https://ydb.tech/docs/ru/security/authentication.md?version=v26.1#ldap).

{% endnote %}
<!-- endsource: ru/_includes/do-not-create-users-in-ldap.md -->

{% note info %}

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

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

* [Ansible](https://ydb.tech/docs/ru/devops/deployment-options/ansible/initial-deployment/index.md?version=v26.1)
* [Kubernetes](https://ydb.tech/docs/ru/devops/deployment-options/kubernetes/initial-deployment.md?version=v26.1)
* [Вручную](https://ydb.tech/docs/ru/devops/deployment-options/manual/initial-deployment/index.md?version=v26.1)
* [Начальная настройка безопасности кластера](https://ydb.tech/docs/ru/security/builtin-security.md?version=v26.1)

{% endnote %}

### SID {#sid}

YDB позволяет работать с [пользователями](https://ydb.tech/docs/ru/concepts/glossary.md?version=v26.1#access-user) из разных каталогов и систем, и они отличаются [SID](https://ydb.tech/docs/ru/concepts/glossary.md?version=v26.1#access-sid) с использованием суффикса.

Суффикс `@<auth-domain>` идентифицирует «источник пользователя», внутри которого гарантируется уникальность всех логинов или идентификаторов пользователей. Например, в случае [аутентификации LDAP](https://ydb.tech/docs/ru/security/authentication.md?version=v26.1#ldap-auth-provider) SID'ы пользователей будут `user1@ldap` и `user2@ldap`.<br/>
У локальных пользователей пустой auth-domain. Если SID пользователя не содержит суффикса, то имеется в виду локальный пользователь, созданный и существующий непосредственно в кластере YDB.

## Группа {#group}

Любого [пользователя](https://ydb.tech/docs/ru/concepts/glossary.md?version=v26.1#access-user) можно включить в ту или иную [группу доступа](https://ydb.tech/docs/ru/concepts/glossary.md?version=v26.1#access-group) или исключить из неё. Как только пользователь включается в группу, он получает все права на [объекты базы данных](https://ydb.tech/docs/ru/concepts/glossary.md?version=v26.1#access-object), которые предоставлялись группе доступа.
С помощью групп доступа YDB можно реализовать бизнес-роли пользовательских приложений, заранее настроив требуемые права доступа на нужные объекты.

{% note info %}

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

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

{% endnote %}

Для создания, изменения и удаления [групп](https://ydb.tech/docs/ru/concepts/glossary.md?version=v26.1#access-group) есть следующие виды YQL запросов:

* [CREATE GROUP](https://ydb.tech/docs/ru/yql/reference/syntax/create-group.md?version=v26.1)
* [ALTER GROUP](https://ydb.tech/docs/ru/yql/reference/syntax/alter-group.md?version=v26.1)
* [DROP GROUP](https://ydb.tech/docs/ru/yql/reference/syntax/drop-group.md?version=v26.1)

## Права доступа {#right}

[Права доступа](https://ydb.tech/docs/ru/concepts/glossary.md?version=v26.1#access-right) в YDB привязаны не к [субъекту](https://ydb.tech/docs/ru/concepts/glossary.md?version=v26.1#access-subject), а к [объекту доступа](https://ydb.tech/docs/ru/concepts/glossary.md?version=v26.1#access-object).

У каждого объекта доступа есть список прав — [ACL](https://ydb.tech/docs/ru/concepts/glossary.md?version=v26.1#access-acl) (Access Control List) — он хранит все предоставленные [субъектам доступа](https://ydb.tech/docs/ru/concepts/glossary.md?version=v26.1#subject) (пользователям и группам) права на объект.

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

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

* [GRANT](https://ydb.tech/docs/ru/yql/reference/syntax/grant.md?version=v26.1).
* [REVOKE](https://ydb.tech/docs/ru/yql/reference/syntax/revoke.md?version=v26.1).

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

* [chown](https://ydb.tech/docs/ru/reference/ydb-cli/commands/scheme-permissions.md?version=v26.1#chown)
* [grant](https://ydb.tech/docs/ru/reference/ydb-cli/commands/scheme-permissions.md?version=v26.1#grant-revoke)
* [revoke](https://ydb.tech/docs/ru/reference/ydb-cli/commands/scheme-permissions.md?version=v26.1#grant-revoke)
* [set](https://ydb.tech/docs/ru/reference/ydb-cli/commands/scheme-permissions.md?version=v26.1#set)
* [clear](https://ydb.tech/docs/ru/reference/ydb-cli/commands/scheme-permissions.md?version=v26.1#clear)
* [clear-inheritance](https://ydb.tech/docs/ru/reference/ydb-cli/commands/scheme-permissions.md?version=v26.1#clear-inheritance)
* [set-inheritance](https://ydb.tech/docs/ru/reference/ydb-cli/commands/scheme-permissions.md?version=v26.1#set-inheritance)

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

* [describe](https://ydb.tech/docs/ru/reference/ydb-cli/commands/scheme-describe.md?version=v26.1)
* [list](https://ydb.tech/docs/ru/reference/ydb-cli/commands/scheme-permissions.md?version=v26.1#list)

## Владелец объекта {#owner}

У каждого объекта доступа есть [владелец](https://ydb.tech/docs/ru/concepts/glossary.md?version=v26.1#access-owner). Им по умолчанию становится [субъект доступа](https://ydb.tech/docs/ru/concepts/glossary.md?version=v26.1#access-subject), создавший [объект доступа](https://ydb.tech/docs/ru/concepts/glossary.md?version=v26.1#access-object).

{% note info %}

Для владельца не проверяются [списки прав](https://ydb.tech/docs/ru/concepts/glossary.md?version=v26.1#access-control-list) на данный [объект доступа](https://ydb.tech/docs/ru/concepts/glossary.md?version=v26.1#access-object).

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

{% endnote %}

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

Сменить владельца можно с помощью CLI команды [`chown`](https://ydb.tech/docs/ru/reference/ydb-cli/commands/scheme-permissions.md?version=v26.1#chown).

Просматривать владельца объекта можно с помощью CLI команды [`describe`](https://ydb.tech/docs/ru/reference/ydb-cli/commands/scheme-describe.md?version=v26.1).
