Создать пользователя с правами read-only (только чтение) в MySQL

Создать пользователя с правами 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

Установка MariaDB на Debian

Создать пользователя с правами 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» завершена.

One thought on “Создать пользователя с правами read-only (только чтение) в MySQL

  1. Добрый день, у вас ошибка в примере на скриншоте во второй строчке: должно быть так = CREATE USER ‘test_user’@’localhost’ IDENTIFIED BY ‘password’;
    а вы создаете саму БД а не пользователя!

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.