Як створити нового користувача MySQL та надати йому дозволи?

mysql

MySQL — це система керування реляційною базою даних, є найпопулярнішою базою даних з відкритим кодом у світі. MySQL зазвичай розгортається як частина стеку LAMP (що означає Linux, Apache, MySQL і PHP).

У цьому посібнику описано, як створити нового користувача MySQL і надати йому дозволи для виконення певних дій з базою даних.

Після встановлення MySQL створює обліковий запис користувача root. Цей користувач має максимальні привілеї щодо сервера MySQL, тобто він має повний контроль над кожною базою даних, таблицею, користувачем тощо. Але краще уникати використання облікового запису root для доступу додатків. Ця публікація описує кроки, як використовувати користувача root MySQL для створення нового облікового запису користувача та надання йому привілеїв.

З консолі підключаємось до MySQL:

mysql -u root -p

Створюємо користувача:

CREATE USER ‘user’@’hostname’ IDENTIFIED WITH authentication_plugin BY ‘password’;

user – логін майбутнього користувача

hostname – дозволений хост, звідки він може підключатися. Якщо база даних MySQL та додаток знаходяться на одному й тому ж сервері, то в hostname зазначте 127.0.0.1 або localhost

password – пароль майбутнього користувача

Надати дозволи користувачу можна командою:

GRANT ALL PRIVILEGES ON database.* TO ‘user’@’localhost’ WITH GRANT OPTION;

Ця команда надасть всі права на роботу з базою (та всіма таблицями) database користувачеві user.

Якщо потріюно надати права на окрему таблицю, замість зірочки в database.* вкажіть ім’я таблиці.

Приклад аналогічної команди з переліком прав. Можна видалити не потрібні.

GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES, RELOAD on database.* TO ‘user’@’localhost’ WITH GRANT OPTION;

Щоб зміни набули чинності виконайте:

FLUSH PRIVILEGES;

Переглянути які права є у користувача:

SHOW GRANTS FOR ‘user’@’hostname’;

Відкликати деякі права у користувача:

REVOKE nazva_prava ON database.* FROM ‘user’@’hostname’;

Видалити користувача:

DROP USER ‘user’@’localhostname’;

Схожі публікації