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') --- ...