ROLE
-ok használatát, melyek segítségével jogosultságokat tudunk egy csoportba foglalni egy megadott név alatt.
CREATE ROLE
CREATE USER
jogosultság. Amennyiben egy felhasználó rendelkezik a CREATE USER
jogkörrel, akkor tudja kezelni a szerepköröket is.GRANT OPTION
CREATE USER
(hogy egy másik felhasználó alapértelmezett szerepkörét megadjuk)ROLE_ADMIN
és SYSTEM_VARIABLES_ADMIN
****(rendszerváltozók módosításához, melyekkel a szerepkörök viselkedését tudjuk befolyásolni)Nagyon hasonló a felhasználók létrehozásához. A szerepkörök adminisztrációja követi a felhasználókét:
'<rolename>'@'<hostname>'
Szerepköröket a CREATE ROLE
paranccsal tudunk létrehozni:
CREATE ROLE 'rolename';
CREATE ROLE 'fejlesztok';
CREATE ROLE 'role1', 'role2';
Ha a létrehozni kívánt szerepkör már létezik, akkor a parancs hibára fut. Ilyenkor jön jól az IF NOT EXISTS
kifejezés.
CREATE ROLE IF NOT EXISTS 'role3';
A felhasználói jogosultságok hozzárendeléséhez hasonlóan tudunk jogosultságokat adni a szerepköröknek is.
GRANT
parancsot használjuk.GRANT jogosultsagok ON <database>.<object> TO 'role1';
GRANT SELECT ON appdb.* TO 'readapp';
GRANT SELECT, INSERT, UPDATE, DELETE ON appdb.* TO 'writeapp';
A jogosultságok visszavonása megegyezik a felhasználóktól való jogosultság visszavonással.
A szerepköröket a felhasználókhoz szintén a GRANT
paranccsal tudjuk rendelni.
GRANT 'role1' TO 'user1'@'localhost';
Miután kiosztottuk a szerepköröket, ahhoz, hogy azokat használni is lehessen, aktiválni kell őket. A jelenleg aktív szerepkörök lekérdezéséhez a SELECT
parancsot használjuk.
SELECT CURRENT_ROLE();
A szerepköröket az adott munkamenetre, az éppen bejelentkezett felhasználóra a SET ROLE
paranccsal tudjuk aktiválni.
SET ROLE 'role1';
SET ROLE 'role1', 'role2', 'role3';
Az összes szerepkört aktiválhatjuk egyszerre az ALL
kulcsszó használatával.
SET ROLE ALL;
Úgy is aktiválhatjuk a szerepköröket, hogy néhányat kizárunk közülük az EXCEPT
kulcsszóval.
SET ROLE ALL EXCEPT 'role21';
Ha minden szerepkört deaktiválni szeretnénk, akkor a NONE
kulcsszót kell használni.
SET ROLE NONE;
Az alapértelmezett szerepkörök aktiválásához a DEFAULT
kulcsszót használjuk.
SET ROLE DEFAULT;
A szerepköröket automatikusan is aktiválhatjuk. Ilyen esetben a felhasználó bejelentkezése után automatikusan aktiválásra kerülnek a megadott szerepkörök.
SET DEFAULT ROLE 'role1';
Más felhasználóknak is meghatározhatunk alapértelmezetten aktiválódó szerepköröket. Ehhez azonban rendelkezni kell a CREATE USER
jogkörrel.
SET DEFAULT ROLE 'role1' TO 'user1'@'localhost';
SET DEFAULT ROLE 'role1' FOR 'user1'@'localhost';
MariaDB esetén a FOR
kulcsszót kell használni a fenti példákból.
Megadhatjuk több felhasználóra is:
SET DEFAULT ROLE 'role1' TO 'user1'@'localhost', 'user2'@'localhost';
SET DEFAULT ROLE 'role1' FOR 'user1'@'localhost', 'user2'@'localhost';