zaLinux.ru

Как разрешить пользователю MySQL (MariaDB) создавать новых пользователей и предоставлять привилегии по управлению базами данных и их содержимым другим пользователям


По умолчанию правом (привилегией) создавать новых пользователей, а также предоставлять им права на базы данных, наделён только root.

Пользователь root может делать все возможные операции в отношении баз данных и пользователей. Если вы хотите предоставить часть административных полномочий другому пользователю, то вы можете это сделать.

Как создать административного пользователя MySQL (MariaDB)

Вам нужно знать следующее:

1. Пользователь может передавать другим пользователям только те привилегии, которые предоставлены ему.

2. Привилегии и права их передачи можно настроить весьма детально. Например, вы можете создать пользователям, который будет иметь все возможные права указанную базу данных (например, создавать, удалять, вставлять данные и прочее), но при этом сможет передавать только привилегии на просмотр и вставку новых данных в таблицу.

3. Вы можете предоставить обычному пользователю привилегию создавать других пользователей.

4. Привилегия создавать пользователей также включает в себя привилегию удалять пользователей, переименовывать их и отзывать сразу все привилегии — независимо от того, кто создал этих пользователей.

5. Право создавать пользователей не включает в себя право наделять новых пользователей какими-либо привилегиями — эти разрешения нужно настраивать отдельно.

6. Все привилегии пользователя исчезают (удаляются) при удалении пользователя.

Как разрешить пользователю создавать других пользователей MySQL (MariaDB)

Создайте нового пользователя (замените «_USERNAME_» на имя пользователя, а «_PASSWORD_» на его пароль):

CREATE USER _USERNAME_@localhost IDENTIFIED BY '_PASSWORD_';

Используйте следующий запрос, чтобы предоставить пользователю _USERNAME_ привилегию создавать других пользователей.

GRANT CREATE USER ON *.* TO '_USERNAME_'@'localhost';

В данном запросе «*.*» означает «глобальный уровень привилегий».


Обратите внимание, что получил привилегию создавать пользователей, _USERNAME_ также получает следующие привилегии на всех пользователей, независимо от того, создал их он или root:

CREATE USER

DROP USER

RENAME USER

REVOKE ALL PRIVILEGES

Также обратите внимание, если вы хотите, чтобы после создания нового пользователя _USERNAME_ обладал возможностью назначать привилегии на базы данных, то предварительно _USERNAME_ сам должен получить эти привилегии, причём при их получении должно быть указано право передачи «WITH GRANT OPTION».

Кстати, пользователь, который получил привилегию «CREATE USER», может удалить не только любого другого пользователя, но и самого себя.

Чтобы выданная глобальная привилегия на создание нового пользователя вступила в силу, пользователь должен завершить сеанс и заново подключиться к серверу MySQL (MariaDB).

Как разрешить пользователю передавать привилегии на управление базами данных

Теперь детально настройте права нового пользователя доступ и управления базами данных, в этом вам помогут статьи:

Чтобы разрешить пользователю передавать привилегию, которую вы ему назначаете, то к запросу добавляйте «WITH GRANT OPTION». Например, этот запрос даёт все возможные привилегии на базу данных _TestDB_ пользователю _USERNAME_ с правом передачи любому другому пользователю:

GRANT ALL PRIVILEGES ON _TestDB_.* TO '_USERNAME_'@'localhost' WITH GRANT OPTION;

Рекомендуемые статьи:

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *