Постоянно работать под учетной записью администратора или суперюзера считается не то, чтобы плохим тоном, а угрозой безопасности системы. При этом, независимо от того, это Windows, Linux, BSD или базы данных
Давайте рассмотрим, как управлять пользователями и правами доступа при работе с MySQL.
Для каждой системы, которая работает с базами данных, предпочитаю создавать, как минимум, одного пользователя, который ограничен в правах в пределах данной базы.
1. Создание пользователей
Входим через командную строку в Mysql под пользователем, который является администратором
mysql –uroot –p
Создаем пользователя testuser
create user testuser@localhost identified by 'passwor';
Query OK, 0 rows affected (0.01 sec)
Пояснения:
testuser - имя нашего пользователя;
localhost - хост, с которого ему разрешено подключение. Для доступа с любого места указываем '*', что кране не рекомендуется. Также можно использовать IP-адрес удаленного хоста
password - пароль, под которым будет подключаться наш пользователь
И применяем изменения
flush privileges;
Query OK, 0 rows affected (0.00 sec)
Пользователь создан, но он не имеет никаких прав, подключиться к какой-то конкретной БД и выполнять действия он не может, для этого ему нужно предоставить права
Для удаления пользователя
Drop user testuser;
2. Управление правами
Права добавляются командой GRANT, синтаксис которой можно более подробно посмотреть в официальной документации https://dev.mysql.com/doc/refman/5.7/en/grant.html
Для наших целей достаточно следующей информации:
предоставляем пользователю testuser полный доступ к базе testdb
grant all on testdb.* to testuser@localhost;
testdb.* - база данных, к которой мы предоставляем доступ.
* - ко всем таблицам. Если использовать *.* - ко всем базам данных
all - все привилегии. Можно перечислять через запятую.
Перечень доступных значений :
ALL PRIVILEGES - дает пользователю все права
CREATE - позволяет пользователю создавать новые таблицы или базы данных
DROP - позволяет удалять таблицы или базы данных
DELETE - позволяет удалять информацию в таблицах
INSERT - позволяет вставлять или записывать новую информацию в таблицы
SELECT - позволяет выполнить команду SELECT, что позволяет читать информацию с таблиц
UPDATE - эта привилегия позволит обновлять информацию в таблицах
GRANT OPTION - позволяет давать или удалять привилегии у других пользователей
Удалить привилегию можно командой REVOKE, ее синтаксис схожий с grant, подробнее https://dev.mysql.com/doc/refman/5.7/en/revoke.html
Пример команды
REVOKE ALL ON testdb.* FROM testuser@localhost;
В конце не забываем применить
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
Использованные материалы:
https://dev.mysql.com/doc/refman/5.7/en/revoke.html
Комментариев нет:
Отправить комментарий