Linux - MySQL сервер

Не работает? Начинай читать инструкцию.

Создать нового пользователя и настроить права доступа в MySQL

Как создать нового пользователя и назначить права доступа в MySQL. А еще может быть такое, что есть единственный пользователь MySQL без прав к базам данных сервера MySQL, и получить доступ к базам MySQL невозможно. Что делать в таком случае ?

Предлагаю ознакомиться с предложениями моих партнёров

1) Соединяемся с сервером по протоколу ssh или входим в качестве root

2) Останавливаем MySQL:

/etc/rc.d/init.d/mysqld stop или service mysqld stop

3) У меня был казус, когда я удалили все права пользователю root, в результате потерял управление всеми базами сервера MySQL, поэтому запускаем MySQL с особыми параметрами.

/usr/bin/mysqld_safe --skip-grant-tables --user=root &

4) Запускаем клиента MySQL:

mysql -u root

5) Начнем с создания нового пользователя из консоли MySQL (если пользователь существует, этот шаг можно пропустить)

CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';

6) Теперь надо предоставить пользователю доступ к базам данных

GRANT ALL PRIVILEGES ON * . * TO 'newuser'@'localhost';

Звездочки в этой команде задают базу и таблицу, соответственно, к которым у пользователя будет доступ. Конкретно эта команда позволяет пользователю читать, редактировать, выполнять любые действия над всеми базами данных и таблицами.

6) Применить изменения:

FLUSH PRIVILEGES;

7) Выходим из клиента MySQL:

\q

8) Перезапустить MySQL сервер:

/etc/rc.d/init.d/mysqld restart или service mysqld restart

Как назначить различные права доступа

Ниже представлен короткий список некоторых возможных вариантов прав доступа, которые могут получить пользователи:

  • ALL PRIVILEGES - как мы видели ранее, это даст пользователю MySQL полный доступ к заданной базе данных (если база данных не указана, то ко всем).
  • CREATE - позволяет создавать новые таблицы или базы данных.
  • DROP - позволяет удалять таблицы или базы данных.
  • DELETE - позволяет удалять строки из таблиц.
  • INSERT - позволяет добавлять строки в таблицу.
  • SELECT - поволит использовать команду Select для чтения из баз данных.
  • UPDATE - позволит редактировать строки таблиц.
  • GRANT OPTION - позволит назначать или удалять права доступа для других пользователей.

Для назначения прав конкретному пользователю можно использовать следующую схему:

GRANT [тип прав] ON [название базы данных].[название таблицы] TO ‘[имя пользователя]’@'localhost’;

Если вы хотите дать доступ к любой базе данных или к любой таблице, поставьте звездочку (*) вместо названия базы данных или таблицы.

Каждый раз, когда вы изменяете права доступа, не забудьте использовать команду Flush Privileges.

Лишения прав доступа практически идентично их назначению:

REVOKE [тип прав] ON [название базы данных].[название таблицы] FROM ‘[имя пользователя]’@‘localhost’;

По аналогии с использованием команды DROP для удаления базы данных, вы можете использовать эту команду и для удаления пользователя.

DROP USER ‘demo’@‘localhost’;

Для тестирования учетной записи созданного пользователя, надо разлогиниться с помощью команды:

quit

и залогиниться снова, введя в терминале следующую команду:

mysql -u [имя пользователя]-p

Предлагаю ознакомиться с предложениями моих партнёров