CREATE ROLE
MariaDB starting with 10.0.5
I ruoli sono stati introdotti in MariaDB 10.0.5.
Sintassi
CREATE [OR REPLACE] ROLE [IF NOT EXISTS] role [WITH ADMIN {CURRENT_USER | CURRENT_ROLE | utente | ruolo}]
Contents
Spiegazione
L'istruzione CREATE ROLE
crea uno o più ruoli in MariaDB. Per usarla, occorre disporre del privilegio globale CREATE USER
o del privilegio INSERT
sul database mysql. Per ogni account, CREATE ROLE
crea una nuova riga nella tabella mysql.user
che non ha permessi, con il campo is_role
impostato a Y
. Crea anche un record nella tabella mysql.roles_mapping
.
Se uno dei ruoli specificati esiste già, si ottiene un ERROR 1396 (HY000)
. Se avviene un errore, CREATE ROLE
crea i ruoli che non generano errori.
PUBLIC
e NONE
sono riservati e non possono essere usati come nomi di ruoli.
La clausola opzionale WITH ADMIN
determina se l'utente corrente, il ruolo corrente, o un altro utente o ruolo, ha l'uso del ruolo creato. Se la clausola è omessa, WITH ADMIN CURRENT_USER
è il valore predefinito, il che significa che l'utente corrente sarà in grado di assegnare questo ruolo ad altri.
Esempio
CREATE ROLE journalist; CREATE ROLE developer WITH ADMIN lorinda;
OR REPLACE e IF NOT EXISTS:
CREATE ROLE journalist; ERROR 1396 (HY000): Operation CREATE ROLE failed for 'journalist' CREATE OR REPLACE ROLE journalist; Query OK, 0 rows affected (0.00 sec) CREATE ROLE IF NOT EXISTS journalist; Query OK, 0 rows affected, 1 warning (0.00 sec) SHOW WARNINGS; +-------+------+---------------------------------------------------+ | Level | Code | Message | +-------+------+---------------------------------------------------+ | Note | 1975 | Can't create role 'journalist'; it already exists | +-------+------+---------------------------------------------------+