DBA (Database Administrator) – роля с права за изпълнение на
всички действия със системата;
Maintenance Admin – права, необходими за поддържането на сървъра;
ProcessAdmin – права за достъп, наблюдение и управление на процесите на MySQL сървъра;
UserAdmin – Права за манипулиране на останалите потребители;
SecurityAdmin – права за управление на влизането в системата и да дава или
премахва привилегии за сървъра;
MonitorAdmin – минимален набор права за наблюдение на сървъра;
DBManager – всички права върху всички бази данни;
DBDesigner – права за създаване и управление на бази данни;
ReplicationAdmin – права за поддържане на репликация на данните между няколко сървъра;
BackupAdmin – права за архивиране и възстановяване на архивни копия.
Ролите могат да бъдат комбинирани или техните подразбиращи се права да бъдат променяни. Привилегиите могат да се разделят на:
• Административни привилегии – дават възможност на потребителя да управлява MySQL сървъра и
имат глобално значение;
• Привилегии за база данни – важи за всички обекти в нея;
• Привилегии за обект на база данни – таблици, индекси, изгледи, запазени процедури.
Служебните думи за даване и отнемане на права в MySQL сървъра са
GRANT и
REVOKE.
Видове привилегии:
• GRANT ALL – дава на потребителя всички права без възможността за управление на
правата на другите потребители;
• GRANT SUPER –
всички права;
• GRANT ALTER – промяна на таблици;
• GRANT CREATE – създаване на таблици и бази;
• GRANT CREATE USER, GRANT CREATE VIEW – създаване на потребители и изгледи;
• GRANT DELETE –
изтриване на редове;
• GRANT DROP – изтриване на таблица, база, изглед;
• GRANT FILE – четене и запис във файл
• GRANT GRANT_OPTION – управление на права на други потребители;
• GRANT INDEX – създаване и изтриване на индекси;
• GRANT INSERT –
вмъкване на редове;
• GRANT LOCK TABLES – заключване на таблици;
• GRANT SELECT – четене от таблица;
• GRANT SHOW_DATABASE – потребителят да вижда базата;
• GRANT UPDATE – актуализация на полета.
Примери за даване и преглед на права:
• GRANT ALL ON mydb.* TO 'someuser'@'somehost'; - дава всички права на потребителя 'someuser'@'somehost' към всички обекти на базата mydb, без възможност да променя правата на другите потребители;
• GRANT SELECT, INSERT ON mydb.* TO
'someuser'@'somehost'; - дава права на потребитея да чете и добавя данни в базата;
• GRANT ALL ON mydb.mytbl TO 'someuser'@'somehost'; - дава всички права върху таблицата mytbl;
• GRANT SELECT (col1), INSERT (col1,col2) ON mydb.mytbl TO
'someuser'@'somehost'; - различни права върху различните колони от таблицата;
• SHOW GRANTS FOR 'bob'@'pc84.example.com'; - показва всички привилегии на потребител.