8.2.5 Указание имён ролей
Имена ролей MySQL относятся к ролям, которые являются именованными наборами привилегий. Примеры использования ролей см. в разделе 8.2.10, «Использование ролей».
Имена ролей имеют синтаксис и семантику, аналогичные именам учётных записей; см. раздел 8.2.4, «Указание имён учётных записей». Хранимые в таблицах предоставления прав, они обладают теми же свойствами, что и имена учётных записей, описанные в Свойствах столбца области действия таблиц предоставления прав.
Имена ролей отличаются от имён учётных записей в следующих отношениях:
Часть имени роли, относящаяся к пользователю, не может быть пустой. Таким образом, нет “анонимной роли”, аналогичной понятию “анонимный пользователь”.
Как и в имени учётной записи, опускание части имени хоста в имени роли приводит к части хоста, равной
'%'. Но в отличие от'%'в имени учётной записи, часть хоста'%'в имени роли не имеет свойств подстановок. Например, для имени'me'@'%', используемого как имя роли, часть хоста ('%') представляет собой просто значение; оно не имеет свойства сопоставления “любой хост”.Нотация маски сети в части имени хоста имени роли не имеет значения.
Имя учётной записи может быть
CURRENT_USER()в нескольких контекстах. Имя роли — нет.
Строка в таблице системы mysql.user может выполнять функцию как учётной записи, так и роли. В этом случае любые специальные свойства сопоставления имён пользователя или хоста не применяются в контекстах, в которых имя используется как имя роли. Например, вы не можете выполнить следующее утверждение с ожиданием, что оно установит роли текущей сессии, используя все роли, у которых часть пользователя равна myrole, а имя хоста — любое:
SET ROLE 'myrole'@'%';
Вместо этого утверждение устанавливает активную роль для сессии в роль с именем ровно 'myrole'@'%'.
По этой причине имена ролей часто указываются, используя только часть имени пользователя, и оставляя часть имени хоста неявной и равной '%'. Указание роли с частью хоста, отличной от '%', может быть полезно, если вы намереваетесь создать имя, которое работает как роль и как учётная запись пользователя, имеющего разрешение на подключение с указанного хоста.
© 2025 Oracle
Licensed under the GPLv2 License.