Истории успеха наших клиентов — лучшие проекты
Вход/ Регистрация

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

6802
5 минут чтения
Средний рейтинг статьи: 3

В этой статье мы с вами разберём предоставление прав доступа различного уровня третьим лицам. Создание пользователя в MySQL начинает работу, ведь без создания юзерских аккаунтов сделать нельзя решительно ничего. Также рассмотрим предоставление права доступа к созданным таблицам, без хорошего понимания которых работа с облачными сервисами вроде timeweb.cloud будет совершенно невозможна.

Создание Нового Пользователя И Раздача Прав В My SQL (1)

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

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

    

Описание полей:

  • [IF NOT EXISTS] – если пользователь существует, то команда остановит выполнение. Необязательный параметр.
  • Userимя учетной записи. Состоит из имени пользователя и имени хоста. ('user_name'@'host_name'). Часть 'host_name' является необязательной (задает хост, с которого можно будет подключиться с данным именем, % означает все возможные хосты). Если мы хотим в MySQL создать пользователя для удалённого подключения, то можно указать доменное имя, IP-адрес или адрес подсети. Имя учетной записи, состоящей только из имени пользователя, можно записать так: 'user_name'@'%' – такая учетная запись будет доступна с любого хоста. Кроме того, можно создать анонимного пользователя: ''@'localhost'.
  • [auth_option] необязательное значение, указывает, как учетная запись проходит аутентификацию (пароль, свойства блокировки и т.д.).
  • DEFAULT ROLE задает роль пользователя.
  • REQUIRE {NONE | tls_option [[AND] tls_option] ...} – если указано, то проверяет сертификат X.509 в дополнении к обычной аутентификации.
  • WITH – если указано, позволяет установить ограничение на использование ресурсов сервера. Например, ограничить кол-во запросов, обновлений или подключений к серверу.
  • password_option – параметры управления паролями (необязательный параметр). Например, срок действия, ограничение повторного использования, отслеживание неудачных попыток входа.
  • COMMENT…| ATTRIBUTE – добавление пользовательских комментариев или атрибутов в формате .JSON (нельзя использовать одновременно). Необязательный параметр.

DBaaS

Запустите свою базу данных в облаке и
оптимизируйте процессы DevOps и CI/CD.

Выдача привилегий

Создать пользователя и дать права на базу в MySQL — первое, что вы делаете, начиная работу. Чтобы выдать привилегии или назначить роль (роль — это именованный набор привилегий), используется оператор GRANT. Одновременно выдать и то, и другое нельзя. Чтобы выдавать привилегии, необходимо самому иметь эти привилегии.

Синтаксис для определения роли учетной записи:

    
  • role – роль, которую предоставляем.
  • user_or_role – имя учетной записи или роль.
  • WITH ADMIN OPTION – если указано, то с учетной записи, которой предоставили роль, можно будет также выдать эту роль кому-то ещё. Пример:
    

Синтаксис для добавления привилегий:

    
  • priv_type – тип привилегий. Их много. Например, привилегии для создания таблиц, их обновления, заполнения или удаления; для создания ролей, пользователей, индексов; привилегии администрирования резервного копирования и учетных записей без паролей и много-много всего еще.
  • object_type – если указано, задает тип следующего объекта (может быть TABLE, FUNCTION или PROCEDURE). 
  • priv_level – задает уровень привилегий.

Привилегии могут быть:

  • глобальные — например, на создание пользователей. Применяются ко всем базам на сервере. Синтаксис: ON *.*
    
  • баз данных — применяются ко всем объектам в указанной базе данных. Применяются для создания или удаления таблиц. Пример:
    
  • таблиц — применяются ко всем столбцам в таблице. Применяется вставка или обновление записей. Пример:
    
  • столбцов – применяется к определенным столбцам (вставка, просмотр, обновление данных). В примере за привилегией следует название столбца в круглых скобках:
    

Также есть привилегии подпрограмм и прокси-пользователей.

Если предоставить учетной записи все привилегии, то можно создать «суперпользователя»:

    

Для того чтобы отозвать роли или привилегии учетной записи, используется REVOKE.

    

Мы отозвали у пользователя привилегию вставки данных в таблицы на глобальном уровне.

Чтобы удалить пользователя, используется DROP:

    

Тарифы MySQL

Cloud DB 1/1/8

447 ₽/мес

Процессор
1 x 3.3 ГГц
Память
1 ГБ
Диск NVMe
8 ГБ
Приватный IP
Есть
Резервные копии
Есть
Cloud DB 1/2/20

711 ₽/мес

Процессор
1 x 3.3 ГГц
Память
2 ГБ
Диск NVMe
20 ГБ
Приватный IP
Есть
Резервные копии
Есть
Таблица тарифов
Сравнение тарифов
Cloud DB 1/1/8
496
Cloud DB 1/2/20
790
Cloud DB 2/2/30
1160
Cloud DB 2/4/40
1580
Cloud DB 4/8/80
3160
Cloud DB 4/12/120
4240
Cloud DB 6/12/180
5460
Cloud DB 8/16/220
7040
Процессор1 x 3.3 ГГц1 x 3.3 ГГц2 x 3.3 ГГц2 x 3.3 ГГц4 x 3.3 ГГц4 x 3.3 ГГц6 x 3.3 ГГц8 x 3.3 ГГц
Память1 ГБ2 ГБ2 ГБ4 ГБ8 ГБ12 ГБ12 ГБ16 ГБ
Диск NVMe8 ГБ20 ГБ30 ГБ40 ГБ80 ГБ120 ГБ180 ГБ220 ГБ
Приватный IPЕстьЕстьЕстьЕстьЕстьЕстьЕстьЕсть
Резервные копииЕстьЕстьЕстьЕстьЕстьЕстьЕстьЕсть

Заключение

Итак, мы рассмотрели, как создать пользователя и выдать ему необходимые права (привилегии). Владея этими знаниями вы сможете уверенно работать с базами, создавать новых юзеров, распределять права и возможности при работе.

6802
5 минут чтения
Средний рейтинг статьи: 3
Хотите внести свой вклад?
Участвуйте в нашей контент-программе за
вознаграждение или запросите нужную вам инструкцию
img-server