Tarantool CE/EE Documentation portal logo
Помощь
Обновлена 15 сентября 2026 г. в 08:55

box.session.su()

su(user-name [, function-to-execute])

Изменение текущего пользователя Tarantool — это аналогично Unix-команде su.

Или, если указан параметр function-to-execute, текущий пользователь Tarantool изменяется временно, на время выполнения функции — это аналогично Unix-команде sudo. При временном изменении пользователя:

Параметры:

  • 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...