box.space._func
-
box.space.
_func
_func
– это системный спейс, который содержит кортежи с функциями, созданными с помощью box.schema.func.create().Кортежи в данном спейсе включают в себя следующие поля:
- числовой идентификатор функции, число,
- имя функции
- флаг,
- название языка (необязательно): „LUA“ (по умолчанию) или „C“
Спейс
_func
не содержит саму функцию. Lua-функции создаются по-прежнему с помощьюfunction имя_функции () ... end
без каких-либо добавлений в спейс_func
. Спейс_func
предназначен лишь для хранения кортежей с функциями так, чтобы их имена могли использоваться в функциях выдачи/отмены прав.Доступны следующие операции:
- Создание кортежа в
_func
с помощью box.schema.func.create(), - Удаление кортежа в
_func
с помощью box.schema.func.drop(), - Проверка наличия кортежа в
_func
с помощью box.schema.func.exists().
Пример:
В следующем примере создадим функцию с именем ‘f7’, поместим ее в спейс
_func
в Tarantool’е и выдадим права на „выполнение“ этой функции пользователю „guest“.tarantool> function f7() > box.session.uid() > end --- ... tarantool> box.schema.func.create('f7') --- ... tarantool> box.schema.user.grant('guest', 'execute', 'function', 'f7') --- ... tarantool> box.schema.user.revoke('guest', 'execute', 'function', 'f7') --- ...