Spec-Zone.ru › MySQL 8.4

15.7.1.2 Оператор CREATE ROLE

CREATE ROLE [IF NOT EXISTS] role [, role ] ...

CREATE ROLE создаёт одну или несколько ролей, которые представляют собой именованные коллекции привилегий. Для использования этого оператора у вас должна быть глобальная привилегия CREATE ROLE или CREATE USER. Когда системная переменная read_only включена, CREATE ROLE дополнительно требует привилегию CONNECTION_ADMIN (или устаревшую привилегию SUPER).

Созданная роль заблокирована, у неё нет пароля, и ей назначен плагин аутентификации по умолчанию. (Эти атрибуты роли можно изменить позже с помощью оператора ALTER USER, пользователям, обладающим глобальной привилегией CREATE USER.)

CREATE ROLE либо выполняется успешно для всех именованных ролей, либо отменяется и не имеет никакого эффекта, если произошла любая ошибка. По умолчанию возникает ошибка, если вы пытаетесь создать роль, которая уже существует. Если указан фрагмент IF NOT EXISTS, оператор генерирует предупреждение для каждой именованной роли, которая уже существует, вместо ошибки.

Оператор записывается в двоичный журнал, если он выполняется успешно, но не если он терпит неудачу; в этом случае выполняется откат, и никакие изменения не вносятся. Оператор, записанный в двоичный журнал, включает все именованные роли. Если указан фрагмент IF NOT EXISTS, это включает даже роли, которые уже существуют и не были созданы.

Каждое имя роли использует формат, описанный в разделе 8.2.5 «Указание имён ролей». Например:

CREATE ROLE 'admin', 'developer';
CREATE ROLE 'webapp'@'localhost';

Часть имени роли, относящаяся к имени хоста, если её опустить, по умолчанию равна '%'.

Примеры использования ролей см. в разделе 8.2.10 «Использование ролей».

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-8.4-en/create-role.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API