diff --git a/docs/api.md b/docs/api.md
index 3dc7d6729600dfb87d3b0c8a9656238534b293fc..60329ec69bb18d5d1dad72416b30173b3c3f7c4b 100644
--- a/docs/api.md
+++ b/docs/api.md
@@ -42,7 +42,7 @@ picodata> pico.help("help")
 | [pico.drop_user()](#picodrop_user) | Удаление пользователя.
 | [pico.exit()](#picoexit) | Корректное завершение работы указанного инстанса.
 | [pico.expel()](#picoexpel) | [Контролируемый вывод](cli.md#expel) инстанса из кластера.
-| [pico.grant_privilege()](#picogrant_privilege) | Назначение права пользователю или роли.
+| [pico.grant_privilege()](#picogrant_privilege) | Назначение привилегии пользователю или роли.
 | [pico.help()](#picohelp) | Доступ к встроенной справочной системе.
 | [pico.instance_info()](#picoinstance_info) | Получение информации об инстансе (идентификаторы, уровни ([grade](glossary.md#grade)) и прочее).
 | [pico.raft_compact_log()](#picoraft_compact_log) | [Компактизация](glossary.md#raft-raft-log-compaction) raft-журнала c удалением указанного числа наиболее старых записей.
@@ -54,7 +54,7 @@ picodata> pico.help("help")
 | [pico.raft_term()](#picoraft_term) | Получение номера терма (текущего или для указанной записи).
 | [pico.raft_timeout_now()](#picoraft_timeout_now) | Немедленное объявление новых выборов в raft-группе.
 | [pico.raft_wait_index()](#picoraft_wait_index) |  Ожидание локального применения указанного raft-индекса.
-| [pico.revoke_privilege()](#picorevoke_privilege) |  Удаление права у пользователя или роли.
+| [pico.revoke_privilege()](#picorevoke_privilege) |  Удаление привилегии у пользователя или роли.
 | [pico.sql()](#picosql) |  Выполнение кластерных SQL-запросов.
 | [pico.wait_ddl_finalize()](#picowait_ddl_finalize) | Ожидание применения (финализации) DDL-операции.
 | [pico.wait_vclock()](#picowait_vclock) | Ожидание момента, когда значение [Vclock](glossary.md#vclock-vector-clock) достигнет целевого.
@@ -562,12 +562,12 @@ pico.expel("i2")
 
 ### pico.grant_privilege
 
-Назначает право пользователю или роли на всех инстансах кластера.
+Назначает привилению пользователю или роли на всех инстансах кластера.
 Функция генерирует для raft-журнала запись, которая при применении
-назначает указанное право. Для ожидания локального создания используется
+назначает указанную привилегию. Для ожидания локального создания используется
 таймаут. Результатом успешного выполнения функции является индекс
-соответствующей записи в raft-журнале. Если указанное право уже было
-ранее назначено, то запрос игнорируется.
+соответствующей записи в raft-журнале. Если указанная привилегия уже была
+ранее назначена, то запрос игнорируется.
 
 ```lua
 function grant_privilege(grantee, privilege, object_type, [object_name], [opts])
@@ -575,7 +575,7 @@ function grant_privilege(grantee, privilege, object_type, [object_name], [opts])
 Параметры:
 
 - `grantee` (_string_), имя пользователя или роли
-- `privilege` (_string_), название права, варианты: `'read'` | '`write'`
+- `privilege` (_string_), название привилегии, варианты: `'read'` | '`write'`
   `| `'execute'` | `'session' `| `'usage'` | `'create'` | `'drop'` |
           `'alter'` | `'reference'` | `'trigger'` | `'insert'` | `'update'` | `'delete'`
 - `object_type` (_string_), тип целевого объекта, варианты: `'universe'`
@@ -598,22 +598,22 @@ function grant_privilege(grantee, privilege, object_type, [object_name], [opts])
 
 Примеры:<a name="grant_pr"></a>
 
-Выдать право на чтение таблицы 'Fruit' пользователю 'Dave':
+Выдать привилегию на чтение таблицы 'Fruit' пользователю 'Dave':
 ```lua
 pico.grant_privilege('Dave', 'read', 'table', 'Fruit')
 ```
 
-Выдать пользователю 'Dave' право исполнять произвольный код Lua:
+Выдать пользователю 'Dave' привилегию исполнять произвольный код Lua:
 ```lua
 pico.grant_privilege('Dave', 'execute', 'universe')
 ```
 
-Выдать пользователю 'Dave' право создавать новых пользователей:
+Выдать пользователю 'Dave' привилегию создавать новых пользователей:
 ```lua
 pico.grant_privilege('Dave', 'create', 'user')
 ```
 
-Выдать право на запись в таблицу 'Junk' для роли 'Maintainer':
+Выдать привилегию на запись в таблицу 'Junk' для роли 'Maintainer':
 ```lua
 pico.grant_privilege('Maintainer', 'write', 'table', 'Junk')
 ```
@@ -928,11 +928,11 @@ function raft_wait_index(target, timeout)
 
 ### pico.revoke_privilege
 
-Удаляет право пользователя или роли на всех инстансах кластера. Функция
+Удаляет привилегию пользователя или роли на всех инстансах кластера. Функция
 генерирует для raft-журнала запись, которая при применении удаляет
-указанное право. Для ожидания локального создания используется таймаут.
+указанную привилегию. Для ожидания локального создания используется таймаут.
 Результатом успешного выполнения функции является индекс соответствующей
-записи в raft-журнале. Если указанного права у пользователя нет, то
+записи в raft-журнале. Если указанной привилегии у пользователя нет, то
 запрос игнорируется.
 
 ```lua
@@ -941,7 +941,7 @@ function revoke_privilege(grantee, privilege, object_type, [object_name], [opts]
 Параметры:
 
 - `grantee` (_string_), имя пользователя или роли
-- `privilege` (_string_), название права, варианты: `'read'` | '`write'`
+- `privilege` (_string_), название привилегии, варианты: `'read'` | '`write'`
   `| `'execute'` | `'session' `| `'usage'` | `'create'` | `'drop'` |
           `'alter'` | `'reference'` | `'trigger'` | `'insert'` | `'update'` | `'delete'`
 - `object_type` (_string_), тип целевого объекта, варианты: `'universe'`
diff --git a/docs/glossary.md b/docs/glossary.md
index 22620a53ee668737a2626bdb88cf478075507834..351b4d0be5ba666a4a43579d7e45816e4ff4cef1 100644
--- a/docs/glossary.md
+++ b/docs/glossary.md
@@ -54,6 +54,35 @@
 Библиотека Vshard встроена в Picodata и является неотъемлемой ее частью.
 В клиентских интерфейсах Vshard желательно прятать за фасадом, но при острой необходимости ничто не помешает им воспользоваться.
 
+## Ролевая модель {: #access-control }
+Для управления доступом в Picodata используются дискреционный и ролевой методы. Ниже приведены основные понятия, относящиеся к ролевой модели.
+
+### Объекты доступа {: #access-objects }
+Объектами доступа являются:
+
+- `table` – [таблица](#table), содержащая данные пользователей (аналог `space` в Tarantool)
+- `user` – [пользователь](#user) СУБД
+- `role` –  [роль](#role), т.е. объединение пользовательских привилегий
+<!-- - `procedure` – хранимая процедура на языке SQL -->
+
+### Пользователь {: #user }
+Пользователь является субъектом доступа. Он указывает имя учетной записи, от имени которой осуществляется подключение к [инстансу](#instance) Picodata. Действия, которые пользователь может совершать в системе, определяются доступными ему [привилегиями](#privilege).
+
+### Привилегия {: #privilege }
+Привилегия – это явное разрешение на выполнение указанных действий. В Picodata определены следующие виды привилегий:
+
+- работа с пользователями: `CREATE USER`, `ALTER USER`, `DROP USER`, `SESSION`
+- работа с ролями: `CREATE ROLE`, `DROP ROLE`
+- работа с таблицами: `CREATE TABLE`, `ALTER TABLE`, `DROP TABLE`, `READ TABLE`, `WRITE TABLE`
+
+### Роль пользователя {: #role }
+Представляет собой именованную группу привилегий, что позволяет структурировать управление доступом.
+Picodata содержит следующие встроенные системные роли пользователей:
+
+- роль `public`. Автоматически назначается всем создаваемым пользователям. Наделение роли `publiс` привилегией автоматически наделяет этой привилегией всех пользователей;
+- роль `super`. Имеет все привилегии, как и пользователь `admin`.
+
+
 ## Сущности {: #essentials }
 В начале идет общее обозначение термина, затем в скобках указан предпочтительный вариант употребления в коде (без пробелов в “змеином регистре”).
 
diff --git a/docs/images/role_model.svg b/docs/images/role_model.svg
new file mode 100644
index 0000000000000000000000000000000000000000..4e95fe71fa2070e5134dc42ef6e9078f59c05a2b
Binary files /dev/null and b/docs/images/role_model.svg differ
diff --git a/docs/images/user_priv.svg b/docs/images/user_priv.svg
new file mode 100644
index 0000000000000000000000000000000000000000..24a53cae71c7b5628c77954948e64434e0ddea4f
Binary files /dev/null and b/docs/images/user_priv.svg differ
diff --git a/docs/images/user_roles.svg b/docs/images/user_roles.svg
new file mode 100644
index 0000000000000000000000000000000000000000..e0284546e3dcb1c87af20c91246fffd461b9f7b7
Binary files /dev/null and b/docs/images/user_roles.svg differ
diff --git a/docs/index.md b/docs/index.md
index c8d8960e1bf8be6b4481929720235f8f6b7d7125..070e0739be7a1122b131a1f727a8e8d5ffb30b17 100644
--- a/docs/index.md
+++ b/docs/index.md
@@ -23,6 +23,7 @@ Picodata — это распределенная система промышле
 * [Подключение и работа в консоли](tutorial_first_steps)
 * [Работа в веб-интерфейсе](tutorial_webui)
 * [Авторизация с помощью LDAP](auth_ldap)
+* [Пользователи, привилегии и роли](tutorial_users)
 * [Работа с данными SQL](tutorial_data)
 
 ### Справочные материалы {: #references }
diff --git a/docs/sql/ebnf/ACL.svg b/docs/sql/ebnf/ACL.svg
new file mode 100644
index 0000000000000000000000000000000000000000..9b14c067fa8c9d7745beb8134320a84d42f26f88
Binary files /dev/null and b/docs/sql/ebnf/ACL.svg differ
diff --git a/docs/sql/ebnf/Column.svg b/docs/sql/ebnf/Column.svg
index ed5acea63df81784de86c3d156787d9647ad7d05..ccb4395d0d632f64fa8f612ef888ffc06ade20b3 100644
Binary files a/docs/sql/ebnf/Column.svg and b/docs/sql/ebnf/Column.svg differ
diff --git a/docs/sql/ebnf/CreateRole.svg b/docs/sql/ebnf/CreateRole.svg
new file mode 100644
index 0000000000000000000000000000000000000000..0906ffb0f06e4d8bd7c7ffc1c7ca765efbe413d2
Binary files /dev/null and b/docs/sql/ebnf/CreateRole.svg differ
diff --git a/docs/sql/ebnf/CreateUser.svg b/docs/sql/ebnf/CreateUser.svg
new file mode 100644
index 0000000000000000000000000000000000000000..130ac7fdd318e10f0c03777814b24f169acda8cd
Binary files /dev/null and b/docs/sql/ebnf/CreateUser.svg differ
diff --git a/docs/sql/ebnf/DropRole.svg b/docs/sql/ebnf/DropRole.svg
new file mode 100644
index 0000000000000000000000000000000000000000..97ee19506871175247aff3549ab80f1b4f32b72a
Binary files /dev/null and b/docs/sql/ebnf/DropRole.svg differ
diff --git a/docs/sql/ebnf/DropUser.svg b/docs/sql/ebnf/DropUser.svg
new file mode 100644
index 0000000000000000000000000000000000000000..2ec32aac8a7c5761ab87695e07c63a7f6f6ac59c
Binary files /dev/null and b/docs/sql/ebnf/DropUser.svg differ
diff --git a/docs/sql/ebnf/STATEMENT.svg b/docs/sql/ebnf/STATEMENT.svg
index 054563441f9cd4b6f65f96052d424f2ff8f967af..ce77f51220a4b62bbc96c7460b0e2656f3bf8bf2 100644
Binary files a/docs/sql/ebnf/STATEMENT.svg and b/docs/sql/ebnf/STATEMENT.svg differ
diff --git a/docs/sql/queries.md b/docs/sql/queries.md
index 9429a5a05c25cfb1d93b67630bcb5e4b51652302..7cc9cbc852af40d903104a71b0aaca8c94fb3eac 100644
--- a/docs/sql/queries.md
+++ b/docs/sql/queries.md
@@ -12,6 +12,7 @@ Picodata при работе с распределенной СУБД.
   добавления данных в таблицы и [`DELETE`](#delete) для удаления данных;
 - Data Query Language (`DQL`): команда [`SELECT`](#select) для получения
   данных из таблиц;
+- Access Control Lists (`ACL`): команды для [управления пользователями](#users) и ролями;
 - команда [`EXPLAIN`](#explain) для отображения планов запросов `DML` и
   `DQL`.
 
@@ -89,6 +90,37 @@ pico.sql([[select * from "characters"]], {})
 примеров используется язык консоли SQL кроме тех случаев, когда
 использование ввода на Lua предпочтительнее.
 
+## Управление пользователями {: #users }
+Ниже показаны схемы для создания и удаления пользователей и ролей.
+
+### **Access control lists** {: #ACL }
+![ACL](ebnf/ACL.svg)
+
+### **Create user** {: #CreateUser }
+![Create user](ebnf/CreateUser.svg)
+
+### **Drop user** {: #DropUser }
+![Drop user](ebnf/DropUser.svg)
+
+### **Create role** {: #CreateRole }
+![Create role](ebnf/CreateRole.svg)
+
+### **Drop role** {: #DropRole }
+![Drop role](ebnf/DropRole.svg)
+
+Пример команды для создания пользователя:
+
+```sql
+create user andy with password 'P@ssw0rd' using md5 option (timeout = 3.0)
+```
+
+Удаление пользователя:
+
+```sql
+drop user andy
+```
+См. [подробнее](../tutorial_users.md) об управлении пользователями.
+
 ## Создание таблицы {: #create_table }
 
 Схема запроса для создания шардированной таблицы показана ниже.
diff --git a/docs/tutorial_data.md b/docs/tutorial_data.md
index 87e56781aa0e7b9ad0787eeb7ae8844049721564..2d6d028d190355645ac7e5576504a6108ca07b09 100644
--- a/docs/tutorial_data.md
+++ b/docs/tutorial_data.md
@@ -3,15 +3,17 @@
 Picodata с помощью языка [SQL-запросов](sql/queries.md).
 
 ## Создание таблицы {: #creating-table }
-После [подключения](tutorial_first_steps.md#accessing-console) к
-инстансу кластера, в интерактивной консоли Picodata можно выполнять
-SQL-запросы. Для этого можно использовать как напрямую язык SQL, так и
-SQL-запросы, обернутые в синтаксис Lua. Переключение языков ввода и
-особенности составления команд описаны в разделе [Команды
-SQL](sql/queries.md#available_langs). Пользователям доступны функции для
-работы как с глобальными, так и шардированными таблицами (в последнем
-случае реализованы возможности [распределенного
-SQL](sql/broadcasted_sql.md)).
+
+Для создания таблицы в Picodata следует сначала
+[подключиться](tutorial_first_steps.md#accessing-console) к
+интерактивной консоли инстанса. Для ввода команд можно использовать
+как формат Lua, так и язык SQL напрямую, в зависимости от
+[выбранного](sql/queries.md#available_langs) языка консоли. В примерах
+ниже использован формат Lua.
+
+Пользователям доступны функции для работы как с глобальными, так и
+шардированными таблицами (в последнем случае реализованы возможности
+[распределенного SQL](sql/broadcasted_sql.md)).
 
 Для примера создадим шаблон списка друзей Свинки Пеппы,
 котором будет два поля: идентификатор записи и имя друга:
diff --git a/docs/tutorial_first_steps.md b/docs/tutorial_first_steps.md
index 2a6c5f18980b84867cc8e1355d383cc1a31e9fec..1bbd55f9fa71e0b491bb886d40c525d2255157ab 100644
--- a/docs/tutorial_first_steps.md
+++ b/docs/tutorial_first_steps.md
@@ -3,22 +3,31 @@
 запущенному экземпляру Picodata и начать работу в консоли.
 
 
-## Доступ к консоли при запуске Picodata {: #accessing-console }
+## Методы подключения {: #connection-methods }
+### Подключение при запуске Picodata {: #accessing-console }
 
 По умолчанию команда `picodata run` запускает инстанс, но не
 предоставляет доступ к управлению им в консоли. Для подключения к
-интерактивной Lua-консоли следует либо запускать инстанс с ключом `-i`
-(`picodata run -i`),
+интерактивной Lua-консоли следует запускать инстанс с ключом `-i`
+(`picodata run -i`). Встроенная консоль предоставляет привилегии уровня
+администратора СУБД (`admin`) и разрешает все действия в рамках
+локальной консоли. При этом, привилегия `SESSION`, позволяющая
+подключаться к удаленным инстансам по сети, у локального администратора
+отсутствует. Подробнее см. в разделе [Пользователи, привилегии и
+роли](tutorial_users.md).
 
-## Подключение к ранее запущенному экземпляру
-### Подключение с помощью адреса экземпляра
+## Подключение к ранее запущенному экземпляру {: #accessing-running-instace }
+### Подключение с помощью адреса экземпляра {: #picodata-connect }
 
 ```
 picodata connect localhost:3301
 ```
-По умолчанию, подключение производится под пользователем `guest` без пароля.
+По умолчанию, [подключение](cli.md#connect-command) производится под
+пользователем `guest` без пароля. У такого пользователя имеется
+единственная привилегия
+[`SESSION`](tutorial_users.md#available-privileges).
 
-### Подключение с помощью сокета
+### Подключение с помощью сокета {: #picodata-console-sock }
 Для этого экземпляр должен быть запущен с указанием такого сокета:
 ```
 picodata run --console-sock /tmp/file.socket
@@ -29,12 +38,10 @@ picodata run --console-sock /tmp/file.socket
 picodata connect --unix /tmp/file.socket
 ```
 
-В данном случае откроется административная консоль (подключение с правами пользователя `admin`).
+В данном случае откроется административная консоль (подключение с
+правами пользователя `admin`).
 
-
-`picodata connect` (см. [подробнее](cli.md#connect-command)).
-
-## Переключение языка консоли
+## Переключение языка консоли {: #switching-console-input-lang }
 По умолчанию используется синтаксис Lua. Для переключения на язык SQL:
 ```
 \set language sql
@@ -52,6 +59,7 @@ picodata connect --unix /tmp/file.socket
 
 Параметры запуска из командной строки описаны в разделе [Аргументы командной строки Picodata](../cli).
 
+
 ---
 [Исходный код страницы](https://git.picodata.io/picodata/picodata/docs/-/blob/main/docs/tutorial_first_steps.md)
 
diff --git a/docs/tutorial_users.md b/docs/tutorial_users.md
new file mode 100644
index 0000000000000000000000000000000000000000..3774d6eb35183bfbfcc5fbe58cd155591572a6b8
--- /dev/null
+++ b/docs/tutorial_users.md
@@ -0,0 +1,158 @@
+# Пользователи, привилегии и роли
+В данном разделе описаны [SQL-команды](sql/queries.md) для управления
+доступом с помощью ролевой модели в Picodata.
+
+## Ролевая модель {: #role-model }
+Ролевая модель Picodata позволяет гибко разграничивать возможности
+пользователей распределенной системы. Разграничение строится на базе
+трех основных понятий: [пользователей](glossary.md#user),
+[привилегий](glossary.md#privilege) и [ролей](glossary.md#role).
+Привилегии можно назначать напрямую пользователям:
+
+![Users and privileges](images/user_priv.svg)
+
+Также, привилегии могут быть назначены роли, которая, в свою очередь,
+может быть присвоена пользователю:
+
+![Users and roles](images/user_roles.svg)
+
+У каждого пользователя может быть одна или несколько ролей. Каждому
+пользователю или роли может быть назначена одна или несколько
+привилегий. Помимо пользователей и ролей, привилегии могут быть
+назначены и [другим объектам](#objects).
+
+## Начало работы {: #getting-started }
+Для начала работы с пользователями, привилегиями и ролями иследует
+[подключиться](tutorial_first_steps.md#accessing-console) к
+интерактивной консоли инстанса Picodata. Для ввода команд можно
+использовать как формат Lua, так и язык SQL напрямую, в зависимости от
+[выбранного](sql/queries.md#available_langs) языка консоли. В примерах
+ниже использован язык SQL.
+
+## Создание пользователя {: #creating-user }
+Создание нового пользователя происходит с помощью SQL-команды `create
+user`, функциональность которой аналогична Lua-функции
+[`pico.create_user()`](api.md#picocreate_user).
+
+Приведем пример создания нового пользователя:
+
+```sql
+pico.sql([[
+	create user peppa
+    with password 'P@ssw0rd'
+    using md5
+	option (timeout = 3.0)
+]])
+```
+
+Команда состоит из следующих элементов:
+
+- обязательные `имя пользователя` и `пароль` (без экранирования символов, в одинарных кавычках);
+- обязательный метод аутентификации (`'chap-sha1'` | `'md5'` | `'ldap'`);
+- опциональный таймаут перед возвращением управления пользователю.
+
+При использовании методов аутентификации `chap-sha1` и `md5` требуется использовать пароль не короче 8
+символов, для метода `ldap` длина пароля не проверяется.
+
+## Удаление пользователя {: #dropping-user }
+Удаление пользователя с известным именем:
+
+```sql
+pico.sql([[
+	drop user peppa
+]])
+```
+
+## Создание роли {: #creating-role }
+
+Создание новой роли происходит с помощью SQL-команды `create
+role`, функциональность которой аналогична Lua-функции
+[`pico.create_role()`](api.md#picocreate_role).
+
+Приведем пример создания новой роли:
+
+```sql
+pico.sql([[
+	create role reader
+	option (timeout = 3.0)
+]])
+```
+
+## Удаление роли {: #dropping-role }
+
+Удаление роли с известным именем:
+
+```sql
+pico.sql([[
+	drop role reader
+]])
+```
+## Управление привилегиями {: #managing-privileges }
+### Назначение и снятие привилегий {: #grant-and-revoke }
+В Picodata предусмотрены две SQL-команды для управления привилегиями:
+
+- `GRANT` для назначения привилегии пользователю или роли
+- `REVOKE` для изъятия привилегии у пользователя или роли
+
+### Доступные привилегии {: #available-privileges }
+Доступные привилегии можно условно разделить на три группы:
+
+Работа с пользователями:
+
+- `CREATE` — создание пользователя
+- `ALTER` — изменение пользователя
+- `DROP` — удаление пользователя
+- `SESSION` — подключение к Picodata по сети
+
+Работа с ролями:
+
+- `CREATE` — создание роли
+- `DROP` — удаление роли
+
+Работа с таблицами:
+
+- `CREATE` — создание таблицы
+- `ALTER` — изменение таблицы
+- `DROP` — удаление таблицы
+- `READ` — чтение данных из таблицы
+- `WRITE` — запись данных в таблицу
+
+### Объекты привилегий {: #target-objects }
+Привилегии иогут быть применены к следующим целевым сущностям: <a
+name="objects"></a>
+
+- `TABLE` — таблица
+- `ROLE` — роль
+- `USER` — пользователь
+
+<!--
+### Примеры команд {: #cli-examples }
+Наделение пользователя правом записи в таблицу:
+```sql
+pico.sql([[
+	grant write on "friends_of_peppa" to "peppa"
+	]])
+```
+
+Создание роли, наделение её правом записи в таблицу, присваивание роли пользователю:
+```sql
+pico.sql([[
+	create role "swine_admin"
+	grant write on "friends_of_peppa" to "swine_admin"
+	grant "swine_admin" to "peppa"
+	]])
+```
+
+Изъятие привилегии у роли:
+```sql
+pico.sql([[
+	revoke write on "friends_of_peppa" from "swine_admin"
+	]])
+``` -->
+
+
+См. также [`pico.grant_privilege`](api.md#picogrant_privilege) и [`pico.revoke_privilege`](api.md#picorevoke_privilege)
+
+---
+[Исходный код страницы](https://git.picodata.io/picodata/picodata/docs/-/blob/main/docs/tutorial_users.md)
+
diff --git a/mkdocs.yml b/mkdocs.yml
index 9ad5cb71009fe36c0fc2f475b7dffc78c3c318cd..1920062d66fe3d84f435e9eac522fa5abaf86974 100644
--- a/mkdocs.yml
+++ b/mkdocs.yml
@@ -16,6 +16,7 @@ nav:
     - tutorial_first_steps.md
     - tutorial_webui.md
     - auth_ldap.md
+    - tutorial_users.md
     - tutorial_data.md
   - Справочные материалы:
     - cli.md