This page is hosted for free by zzz.com.ua, if you are owner of this page, you can remove this message and gain access to many additional features by upgrading your hosting to PRO or VIP for just 32.50 UAH.

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

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