компилируется...
Перейти к основному содержанию
Рекомендовать во Вконтакте Рекомендовать в Фейсбуке Рекомендовать в Твиттере

Создание пользователей и предоставление им прав доступа в MySQL или MariaDB

MySQL является одной из самых популярных систем управления базами данных. В этом руководстве мы рассмотрим шаги, необходимые для создания нового пользователя MySQL и дадим ему права доступа в CentOS, Debian или Ubuntu.

Вся операции будут выполняться внутри консоли MySQL под root пользователем:

mysql -p -u root

Вам будет предложено ввести пароль для root пользователя.

Создание нового пользователя

Вы можете создать нового пользователя MySQL с помощью следующей команды:

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

где:

  • user - имя пользователя MySQL, который будет создан
  • password - пароль, который мы хотим присвоить этому пользователю.

Все команды MySQL выполняются с точкой с запятой (;).

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

Следующее, что нам нужно будет сделать, это предоставить привилегии этому пользователю, чтобы он мог получить доступ к MySQL клиенту и работать с соответствующей базой или базами данных:

GRANT ALL PRIVILEGES ON database.table TO 'user'@'localhost';

где:

  • database - название базы в MySQL, к которой мы предоставляем доступ.
  • table - название таблицы БД, к которой мы предоставляем доступ

Вы можете использовать символ звездочки (*), если захотите предоставить доступ ко всем базам данных/таблицам:

GRANT ALL PRIVILEGES ON database.* TO 'user'@'localhost';

или

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

С помощью первой команды мы предоставляем пользователю user все права доступа ко всем таблицам, относящимся к базе данных с именем database. Во втором случае, для пользователя предоставляется доступ ко всем базам данных.

Существует несколько типов привилегий, которые могут быть предоставлены пользователю. Вы можете найти полный список привилегий, поддерживаемых MySQL, здесь.

Вот список наиболее часто используемых привилегий MySQL:

  • ALL PRIVILEGES - пользователь имеет полный доступ к базе данных.
  • CREATE - пользователю разрешено создавать базы данных и таблицы.
  • DROP - пользователь имеет право удалять базы данных и таблицы.
  • DELETE - пользователь может удалять строки из определенной таблицы.
  • INSERT - пользователь может вставлять строки в определенную таблицу.
  • SELECT - пользователю разрешено читать базу данных.
  • UPDATE - пользователь может обновлять строки таблицы.

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

GRANT SELECT, INSERT, DELETE ON database.* TO 'user'@'localhost';

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

FLUSH PRIVILEGES;

Вот ещё несколько примеров:

Предоставление всех привилегий пользователю по определенной базе данных:

GRANT ALL PRIVILEGES ON database.* TO 'user'@'localhost';

Предоставление всех привилегий пользователю на всех базы данных:

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

Предоставление пользователю всех прав доступа для определенной таблицы в базе данных:

GRANT ALL PRIVILEGES ON database.table_name TO 'user'@'localhost';

Отображение привилегий пользователя

Чтобы найти привилегии, предоставленные определенному пользователю MySQL, используйте оператор SHOW GRANTS:

SHOW GRANTS FOR 'user'@'localhost';
+---------------------------------------------------------------------------+
| Grants for user@localhost                                       |
+---------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'user'@'localhost'                        |
| GRANT ALL PRIVILEGES ON `database`.* TO 'user'@'localhost' |
+---------------------------------------------------------------------------+
2 rows in set (0.00 sec)

Отмена привилегий у пользователя MySQL

Синтаксис отзыва одного или нескольких привилегий с учетной записи пользователя практически идентичен синтаксису, используемому при предоставлении привилегий.

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

REVOKE ALL PRIVILEGES ON database.* TO 'user'@'localhost';

Удаление существующей учетной записи пользователя MySQL

Чтобы удалить учетную запись пользователя MySQL, используйте оператор DROP USER:

DROP USER 'user'@'localhost';

Вышеприведенная команда удалит учетную запись пользователя и его привилегии.

Заключение

Это руководство охватывает только основы, но оно должно стать хорошим началом для тех, кто хочет научиться создавать новые учетные записи пользователей MySQL и предоставлять им права доступа.

Комментарии

Пока что нет комментариев, вы можете быть первым.
Войти или Регистрация , чтобы оставлять комментарии.

Лучшие публикации

Популярные теги

Наш сайт использует куки. Узнайте больше о нашем использовании куки: политика в отношении файлов cookie
Наш сайт существует только благодаря показу онлайн-рекламы нашим посетителям.
Пожалуйста, поддержите нас, отключив блокировку рекламы.