Top.Mail.Ru
box.schema.user.grant() | Tarantool
Tarantool
Узнайте содержание релиза 2.8

box.schema.user.grant()

box.schema.user.grant(user-name, privileges, object-type, object-name[, {options}])
box.schema.user.grant(user-name, privileges, 'universe'[, nil, {options}])
box.schema.user.grant(user-name, role-name[, nil, nil, {options}])

Выдача прав пользователю или другой роли.

Параметры:
  • user-name (string) – имя пользователя
  • privileges (string) – „read“ или „write“ или „execute“ или „create“ или „alter“ или „drop“ или их комбинация.
  • object-type (string) – „space“ (спейс) или „function“ (функция), или „sequence“ (последовательность), или „role“ (роль).
  • object-name (string) – имя объекта, для которого выдаются права.
  • role-name (string) – имя роли, которая выдается пользователю.
  • options (table) – grantor, if_not_exists.

Если указана 'function','object-name', то должен существовать кортеж _func с этим именем объекта.

Вариант: вместо object-type, object-name введите „universe“, что означает „все типы объектов и все объекты“. В этом случае имя объекта будет опущено.

Вариант: вместо privilege, object-type, object-name введите role-name (см. Roles)

Вариант: вместо box.schema.user.grant('user-name','usage,session','universe',nil, {if_not_exists=true}) введите box.schema.user.enable('user-name').

Возможны следующие опции:

  • grantor = grantor_name_or_id – строка или число, для пользователя, который выдает права,
  • if_not_exists = true|false (default = false) - boolean; true означает, что ошибки не должно быть, если пользователь уже имеет права.

Пример:

box.schema.user.grant('Lena', 'read', 'space', 'tester')
box.schema.user.grant('Lena', 'execute', 'function', 'f')
box.schema.user.grant('Lena', 'read,write', 'universe')
box.schema.user.grant('Lena', 'Accountant')
box.schema.user.grant('Lena', 'read,write,execute', 'universe')
box.schema.user.grant('X', 'read', 'universe', nil, {if_not_exists=true}))