Пользователи Tarantool
Пользователи Tarantool – это учетные записи для управления кластером Tarantool (или продуктов на его основе).
В этом разделе описаны два пользователя Tarantool:
- пользователь
adminпредоставляет клиенту полный доступ ко всем функциям кластера, включая управление ролями пользователей, настройку параметров и репликацию. Он может создавать другие роли, управлять состоянием кластера и настраивать взаимодействие с другими компонентами.
- DML-пользователь выполняет DML-операции (чтение, запись, обновление, удаление данных). Когда кластер переводится в пассивное состояние, TCF блокирует доступ для всех DML-пользователей данного кластера. Таким образом организуется запрет изменения данных на пассивном кластере. Может быть создано несколько пользователей с такой ролью. Его создание и добавление в файл конфигурации необходимо для корректной работы TCF.
Примеры операций, которые могут выполнять пользователи admin и DML-пользователь.
Операции пользователя admin на примере DML-пользователя:
Операция | Команда | Описание |
|---|---|---|
Создание пользователя и пароля |
| Создает нового пользователя с заданным паролем |
Изменение пароля |
| Задает новый пароль пользователю |
Назначение прав |
| Дает права на чтение и запись в указанный спейс |
Отключение прав на пассивном кластере |
| Запрещает запись на пассивном кластере |
Включение прав на активном кластере |
| Возвращает права при переключении на активный кластер |
Удаление пользователя |
| Удаляет пользователя из системы |
Операция | Пример команды | Описание |
|---|---|---|
Создание спейса |
| Создает новый спейс для хранения данных |
Удаление спейса |
| Удаляет указанный спейс |
Создание первичного индекса |
| Создает первичный индекс для упрощения доступа по ключу |
Создание вторичного индекса |
| Добавляет индекс по полю |
Задание формата данных для спейса |
| Задает формат данных для спейса |
DML-пользователь выполняет операции чтения, записи, обновления и удаления данных в рамках прав, предоставленных администратором (admin).
При переключении кластера в пассивный режим этот пользователь теряет права на изменение данных для предотвращения некорректных записей.
Таких пользователей может быть несколько.
-
Чтение данных:
-- Чтение всех записей из спейса 'accounts' box.space.accounts:select{} -- Чтение записи с определённым ключом (например, по ID аккаунта) box.space.accounts:get{1}Пример ответа:
{'1', 'Account #1', 'Active'} -
Добавление новых данных:
-- Вставка новой записи о банковском аккаунте box.space.accounts:insert{2, 'Account #2', 'Pending'}Пример ответа:
{'2', 'Account #2', 'Pending'} -
Обновление данных:
-- Обновление статуса аккаунта box.space.accounts:update({2}, {{'=', 3, 'Approved'}})Пример ответа:
{'2', 'Account #2', 'Approved'} -
Удаление данных:
-- Удаление записи по ключу (удаление аккаунта) box.space.accounts:delete{2}Пример ответа:
{'2', 'Account #2', 'Approved'}
Операция | Команда | Описание |
|---|---|---|
Чтение всех данных |
| Чтение всех записей из спейса |
Чтение по ключу |
| Чтение записи по первичному ключу в спейсе |
Добавление данных |
| Добавление новой записи о банковском аккаунте |
Обновление данных |
| Обновление существующей записи (например, статус аккаунта) |
Удаление данных |
| Удаление записи по ключу из спейса |
Пример создания пользователей в YAML-конфигурации для работы TCF:
credentials:users:admin:password: 'secret'roles: [super]privileges:- permissions: ['read', 'write', 'execute', 'create', 'alter', 'drop']universe: truedml_users:password: 'dml_password'roles: [dml]privileges:- permissions: ['read', 'write', 'create', 'alter']spaces: ['space_name']
Пользователи:
admin: администратор БД, предоставляет полный доступ ко всем функциям кластера;replication_user: служебный пользователь репликации данных. На стороне Gateway требует прав на чтение (roles: [replication]), на стороне Destination — прав на выполнение кода и запись данных. Обычно назначаются праваsuper(без прав на управление пользователями);
Параметры пользователей:
password: пароль пользователя, необходимый для аутентификации;roles: роли, назначенные пользователю. Роль определяет разрешенные действия для пользователя в кластере;privileges: операции, разрешенные пользователю. Может включать различные виды разрешений, такие как чтение, запись, выполнение и другие;permissions: разрешения, которые могут быть предоставлены пользователю (например,read,write,execute,create,alter,drop);universe: если задано значениеtrue, разрешения действуют на все объекты в кластере;space: спейс данных, для которого предоставляются права.