MyTetra Share
Делитесь знаниями!
Как создать нового пользователя и настроить права доступа в MySQL
Время создания: 13.07.2018 15:30
Текстовые метки: linux mysql user
Раздел: MySQL
Запись: Velonski/mytetra-database/master/base/1491989976aiuhfcbp4z/text.html на raw.githubusercontent.com

Что такое MySQL

MySQL - это программное обеспечение с открытым исходным кодом для управления базами данных, которое помогает пользователям хранить, организовывать и осуществлять доступ к информации. Оно имеет множество вариантов тонкой настройки прав доступа к таблицам и базам данных для каждого пользователя. Данное руководство представит вам краткий обзор некоторых из этих вариантов.

Как создать нового пользователя

В первой части руководства по MySQL  мы вносили все изменения в настройки MySQL под root-пользователем, имея полный доступ ко всем базам данных. Однако для случаев, когда могут потребоваться более жесткие ограничения, есть способы создания пользователей с особыми наборами прав доступа.

Давайте начнем с создания нового пользователя из консоли MySQL:

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


К сожалению, на данном этапе пользователь "newuser" не имеет прав делать что-либо с базами данных. На самом деле, даже если если пользователь "newuser" попробует залогиниться (с паролем "password"), он не попадет в консоль MySQL.

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

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


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

Поле завершения настройки прав доступа новых пользователей, убедитесь, что вы обновили все права доступа:

FLUSH PRIVILEGES;


Теперь ваши изменения вступят в силу.

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

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

  • 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

Так же в этом разделе:
 
MyTetra Share v.0.65
Яндекс индекс цитирования