Обновлена 15 сентября 2026 г. в 08:55
box.session.su()
Изменение текущего пользователя Tarantool — это
аналогично Unix-команде su.
Или, если указан параметр function-to-execute, текущий пользователь
Tarantool изменяется временно, на время выполнения функции — это
аналогично Unix-команде sudo. При временном изменении пользователя:
- box.session.user() игнорирует это изменение.
- box.session.effective_user() отражает это изменение.
Параметры:
user-name(string) — имя целевого пользователяfunction-to-execute(function) — объект функции. Вbox.session.su()можно передать дополнительные параметры, которые будут интерпретированы как параметрыfunction-to-execute.
Пример 1
Изменение текущего пользователя Tarantool на guest:
app:instance001> box.session.su('guest')---...
Пример 2
Временное изменение текущего пользователя Tarantool на temporary_user:
app:instance001> function get_current_user() return box.session.user() end---...app:instance001> function get_effective_user() return box.session.effective_user() end---...app:instance001> get_current_user()---- admin...app:instance001> box.session.su('temporary_user', get_current_user)---- admin...app:instance001> box.session.su('temporary_user', get_effective_user)---- temporary_user...app:instance001> box.session.su('temporary_user', get_effective_user, '-xxx')---- temporary_user-xxx...app:instance001> box.session.su('temporary_user', function(...) return box.session.user() end)---- admin...