Почнемо. Для початку необхідно відкрити термінал і викликати mysql з правами root:
sudo mysql
Після чого ви побачите приблизно такий результат:
Створення нового користувача MySQL
Створюємо користувача myuser з паролем mypassword
CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypassword';
Задати користувачеві необмежені права доступу в MySQL
Важливо, вкрай небажано створювати користувача з необмеженими правами на продукт сервері.
Далі задамо користувачеві необмежені права
GRANT ALL PRIVILEGES ON * . * TO 'myuser'@'localhost';
Для того що б зміни набули чинності виконаємо команду
FLUSH PRIVILEGES;
Зараз користувач myuser отримав усі права доступу до бази даних як у root.
Призначення спеціальних прав доступу для користувача MySQL
GRANT [тип_доступу] ON [ім'я_бази_даних].[ім'я_таблиці] TO 'user_name'@'localhost';
Найпоширеніші права доступу:
CREATE | Дозволяє користувачам створювати бази даних/таблиці |
SELECT | Дозволяє робити вибірку даних |
INSERT | Дозволяє додавати нові записи до таблиць |
UPDATE | Дозволяє змінювати наявні записи в таблицях |
DELETE | Дозволяє видаляти записи з таблиць |
DROP | Дозволяє видаляти записи в базі даних/таблицях |
Для прикладу дозволимо користувачу myuser створювати таблиці та робити вибірку з таблиць для бази даних mydb
GRANT CREATE, SELECT ON mydb.* TO 'myuser'@'localhost';
Скасування привілеїв для користувача MySQL
Щоб скасувати привілеї користувача, виконайте:
REVOKE [тип_доступу] ON [ім'я_бази_даних].[ім'я_таблиці] FROM 'user_name'@'localhost';
Для прикладу відкличемо у користувача myuser право створювати таблиці для бази даних mydb:
REVOKE CREATE ON mydb.* FROM 'myuser'@'localhost';
Відкликаємо всі права доступу (якщо у нього не root повноваження):
REVOKE ALL PRIVILEGES ON *.* FROM 'user_name'@'localhost';
Видалити користувача MySQL
DROP USER 'user_name'@'localhost';
Вивід списку привілеїв користувача MySQL
Щоб отримати список дозволів для користувача, необхідно виконати наступну команду:
SHOW GRANTS FOR 'user_name'@'localhost';
Приклад відповіді:
Після всіх змін у MySQL бажано викликати команду:
FLUSH PRIVILEGES;