
Создать пользователя с правами read-only (только чтение) в MySQL
И так, я хотел бы создать заметку «Создать пользователя с правами read-only (только чтение) в MySQL» чтобы помочь тем, кто не умеет хорошо пользоваться mysql и не умеет создать пользователей с различными привилегиями.
Установка MySQL/MariDB в Unix/Linux
У меня уже имеется рад статей по установки сервера для баз данных. Вы можете ознакомится с некоторыми тут:
Установка MySQL на Debian/Ubuntu/Linux Mint
Установка MySQL 5.5 на RHEL / CentOS и Fedora
Установка MySQL из портов во FreeBSD
Установка MariaDB 10 на CentOS 7
Создать пользователя с правами read-only (только чтение) в MySQL
И так, если у вас уже имеется сервер с базами данных, то приступим к созданию пользователя. Но для начала подключимся к самому mysql :
# mysql -u root -p
После этого, нужно будет ввести пароль от пользователя. Идем далее, сейчас предоставим пользователю (Your_read-only_mysql_username) доступ к базе данных с любого хоста следующей командой:
> grant select on database_name.* to 'Your_read-only_mysql_username'@'%' identified by 'Your_password_for_read-only_mysql_username';
Если коллектор будет установлен на том же хосте, что и базы данных, введите следующую команду:
> grant select on database_name.* to 'Your_read-only_mysql_username' identified by 'Your_password_for_read-only_mysql_username';
Или:
> grant select on database_name.* to 'Your_read-only_mysql_username'@'localhost' identified by 'Your_password_for_read-only_mysql_username';
Данные команды дадут доступ к базе данных с localhost хоста для пользователя Your_read-only_mysql_username.
если нужно ограничить доступ к базе с определенного хоста или IP адреса, то используйте команду что ниже:
> grant select on database_name.* to 'Your_read-only_mysql_username'@'Your_hostname_or_IP' identified by 'Your_password_for_read-only_mysql_username';
PS: Ваш хостнейм должен быть отрезолвен DNS или локальным hosts файлом.
После того как дали пользователю права на чтение, стоит применить все настройки, а можно это сделать со следующей командой:
> flush privileges;
Для выхода используем:
> quit
Рассмотрим готовый пример:
# mysql -uroot -p mysql> create database test; mysql> grant select on test.* to 'readonlyuser'@'localhost' identified by 'readonlyuserpw'; mysql> flush privileges; Query OK, 0 rows affected (0.00 sec) mysql> quit
И так, создали все и после чего проверяем что вышло:
# mysql -u readonlyuser -p > use test; > create table tets; ERROR 1142 (42000): CREATE command denied to user 'readonlyuser'@'127.0.0.1' for table 'tets'
Собственно, все работает.
Вот и все, ничего сложно. Данная статья «Создать пользователя с правами read-only (только чтение) в MySQL» завершена.
Добрый день, у вас ошибка в примере на скриншоте во второй строчке: должно быть так = CREATE USER ‘test_user’@’localhost’ IDENTIFIED BY ‘password’;
а вы создаете саму БД а не пользователя!