MySQL. Створення нового користувача та налаштування прав доступу

24 серпня 2024 р. 40 egor

Простий список команда для створення користувача MySQL та налаштування його привілеїв для роботи.

Почнемо. Для початку необхідно відкрити термінал і викликати 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;