Mysql добавить пользователя: Как Создать Пользователя MySQL и Настроить Права Доступа

Содержание

Как Создать Пользователя MySQL и Настроить Права Доступа

MySQL

access_time

29 июля, 2020

hourglass_empty

4мин. чтения

Хотите понять основы MySQL? Читайте дальше, так как эта статья раскрывает одну из базовых тем, а именно как создать пользователя в MySQL. Кроме этого мы покажем несколько команд, с помощью которых можно предоставить и отозвать привилегии, а также удалить существующих пользователей.

Получите скидку до 77% на пакеты VPS-хостинга.

Смотреть планы

Прежде чем мы перейдём к следующему разделу руководства, убедитесь, что вы установили MySQL. У нас есть отличные учебные пособия о том, как установить БД на Ubuntu и CentOS.

ОБРАТИТЕ ВНИМАНИЕ. Мы будем использовать командную строку, чтобы подключиться к нашему Linux VPS как root-пользователь. Вы можете использовать PuTTY (Windows) или свой терминал (macOS, Linux) и войти в систему, используя данные своего root-доступа SSH, предоставленные вашим хостинг-провайдером.

Создайте Учётную Запись Пользователя MySQL и Предоставьте Неограниченные Права Доступа

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

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

Например, вы нанимаете разработчиков для поддержки ваших баз данных, но не хотите, чтобы они могли удалять или изменять конфиденциальную информацию.

В таком случае просто предоставьте им учётные данные пользователя без полномочий root. Таким образом, определяя, что они могут и не могут делать с вашими данными.

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

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

  1. Запустите командную строку и из неё сервер MySQL:
    mysql
  2. Сценарий вернёт следующий результат, подтверждающий, что вы обращаетесь к серверу MySQL.
    mysql>
  3. Затем выполните следующую команду:
    CREATE USER 'novyi_polzovatel'@'localhost' IDENTIFIED BY 'parol';
  4. novyi_polzovatel — это имя, которое мы дали нашей новой учётной записи, а часть IDENTIFIED BY ‘parol’ устанавливает пароль для этого пользователя. Вы можете заменить значения внутри кавычек.
  5. Чтобы назначить созданном пользователю неограниченные права доступа к базе данных, выполните следующую команду:
    GRANT ALL PRIVILEGES ON * . * TO 'novyi_polzovatel'@'localhost';
  6. Для того, чтоб изменения вступили в силу запустите команду обновления:
    FLUSH PRIVILEGES;

Это всё. Ваш новый пользователь получил те же права доступа в базе данных, что и пользователь root.

Назначьте Специальные Права Доступа для Пользователя MySQL

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

Кроме того, замените значение ТИП_ПРАВ типом доступа, который вы хотите предоставить своему новому пользователю.

В MySQL есть несколько типов прав доступа, некоторые из них описаны ниже:

  • CREATE — Позволяет пользователям создавать базы данных/таблицы
  • SELECT — Разрешает делать выборку данных
  • INSERT — Право добавлять новые записи в таблицы
  • UPDATE — Позволяет изменять существующие записи в таблицах
  • DELETE — Даёт право удалять записи из таблиц
  • DROP — Возможность удалять записи в базе данных/таблицах

ОБРАТИТЕ ВНИМАНИЕ. Тип прав ALL PRIVILEGES даёт все перечисленные выше разрешения.

Для использования любой из этих опций, просто замените ТИП_ПРАВ необходимым разрешением. Чтобы назначить несколько видов прав доступа, разделите их запятыми как в следующей команде. Например, мы можем назначить привилегии CREATE и SELECT нашему пользователю MySQL без полномочий root следующей командой:

GRANT [тип_прав] ON [имя_базы_данных].[имя_таблицы] TO ‘imia_polzovatelia’@'localhost’;
GRANT CREATE, SELECT ON * . * TO 'imia_polzovatelia'@'localhost';

Иногда вы можете столкнуться с ситуацией, когда вам нужно отменить определенные привилегии пользователя. Сделать это можно, выполнив следующую команду:

REVOKE ТИП_ПРАВ ON имя_базы_данных.имя_таблицы FROM ‘imia_polzovatelia’@‘localhost’;

Чтобы отозвать все права доступа пользователя без полномочий root, используйте команду:

REVOKE ALL PRIVILEGES ON *.* FROM 'imia_polzovatelia'@'localhost';

Наконец, вы можете полностью удалить существующую учётную запись пользователя, используя команду:

DROP USER ‘imia_polzovatelia’@‘localhost’;

ОБРАТИТЕ ВНИМАНИЕ. Для запуска любой из этих команд вам необходим root-доступ. Также, обязательно выполняйте FLUSH PRIVILEGES; Команда после внесения изменений.

Просмотр Прав Доступа Пользователя MySQL

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

SHOW GRANTS FOR 'imia_polzovatelia'@'localhost';

Вывод будет выглядеть примерно так:

+---------------------------------------------------------------------------+
| Grants for imia_polzovatelia@localhost                                             |
+---------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'imia_polzovatelia'@'localhost'                              |
| GRANT ALL PRIVILEGES ON 'имя_базы_данных'.* TO 'imia_polzovatelia'@'localhost'.    |
| REVOKE ALL PRIVILEGES ON * . * FROM 'imia_polzovatelia'@'localhost';  |
+---------------------------------------------------------------------------+
3 rows in set (0.00 sec)

Что Такое База Данных MySQL?

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

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

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

MySQL — одна из самых популярных систем управления базами данных. Её популярность объясняется простотой использования и поддержкой огромного сообщества. Даже такие платформы, как Facebook и Twitter, в некоторой степени используют MySQL.

Заключение

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

В этом руководстве вы узнали несколько основных команд для работы в MySQL, в том числе КАК:

  • Создать пользователя MySQL и предоставить ему полные права доступа
  • Назначить и отозвать определённые разрешения, а также полностью удалить пользователя MySQL
  • Посмотреть разрешения пользователя MySQL

Удачи, и не стесняйтесь оставлять комментарии ниже, если у вас есть какие-либо вопросы.

Создание пользователя MySQL | Losst

После того, как вы установили и настроили MySQL, вам необходимо создать базы данных, таблицы и пользователей. Конечно, вы можете сделать это от имени  суперпользователя root, но это не безопасно. Да и большинство приложений не позволят вам такой вольности, например, Phpmyadmin не даст авториrзоваться от имени суперпользователя.

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

Содержание статьи:

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

1. Как создать пользователя MySQL

Предположим, что база данных уже создана и называется test_database. Нам нужно открыть клиент базы данных. Для этого наберите в терминале:

mysql -u root -p

Теперь можно работать. Для создания пользователя используется команда CREATE USER, её синтаксис такой:

CREATE USER ‘имя_пользователя’@’хост’ IDENTIFIED BY ‘пароль’;

Кроме имени пользователя, здесь нужно задать хост, с которого может авторизоваться этот пользователь. Здесь может быть доменное имя, IP-адрес, адрес подсети или знак «%», который означает все возможные хосты. Это очень удобно, потому что вы можете создать пользователя, к которому можно будет подключится только локально или настроить отдельно права для локального или удалённого пользователя.

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

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

Или можно создать пользователя, который будет доступен со всех хостов:

CREATE USER 'test_user'@'%' IDENTIFIED BY 'password';

Смотрим наших пользователей:

SELECT User,Host FROM mysql.user;

Все пользователи созданы.

2. Права пользователя MySQL

Создать пользователя — это ещё далеко не всё, теперь нужно назначить ему права. Для этого используется команда GRAT. У неё такой синтаксис:

GRANT привилегии ON база_данных . таблица TO ‘имя_пользователя’@’хост’;

Здесь можем дать определённые привилегии для опредёленного пользователя к базе данных или таблице. Если нужно дать права для всех баз данных или таблиц, используйте вместо названия звездочку — «*». Вот основные права пользователя MySQL, которые вы можете использовать:

  • ALL PRIVILEGES — все, кроме GRANT;
  • USAGE PRIVILEGES — никаких привилегий;
  • SELECT — делать выборки из таблиц;
  • INSERT — вставлять данные в таблицу;
  • UPDATE — обновлять данные в таблице;
  • DELETE — удалять данные из таблицы;
  • FILE — разрешает читать файлы на сервере;
  • CREATE — создавать таблицы или базы данных;
  • ALTER — изменять структуру таблиц;
  • INDEX — создавать индексы для таблиц;
  • DROP — удалять таблицы;
  • EVENT — обработка событий;
  • TRIGGER — создание триггеров.

Также доступны такие привилегии администрирования баз данных:

  • GRANT — изменять права пользователей;
  • SUPER — суперпользователь;
  • PROCESS — получение информации о состоянии MySQL;
  • RELOAD — позволяет перезагружать таблицы привилегий;
  • SHUTDOWN — позволяет отключать или перезапускать базу данных;
  • SHOW DATABASES — просмотр списка баз данных;
  • LOCK TABLES — блокирование таблиц при использовании SELECT;
  • REFERENCES — создание внешних ключей для связывания таблиц;
  • CREATE USER — создание пользователей;

Чтобы дать права пользователю MySQL на обновление и добавление записей для базы данных test_database, выполните:

GRANT SELECT,UPDATE,INSERT ON test_database . * TO 'test_user'@'localhost';

 

Дальше дадим этому же пользователю все права над этой базой данных:

GRANT ALL PRIVILEGES ON test_database . * TO 'test_user'@'localhost';

Теперь посмотрим привилегии нашего пользователя:

SHOW GRANTS FOR 'test_user'@'localhost';

Мы видим, что для всех баз данных и таблиц привелегий нет, но зато есть все привилегии для базы данных test_database. Вот так это работает. После обновления прав пользователя необходимо обновить таблицу прав пользователей MySQL  в памяти. Для этого выполните:

FLUSH PRIVILEGES;

3. Удаление прав пользователя MySQL

Чтобы отозвать права у пользователя MySQL, используйте команду REVOKE вместо GRANT. Её синтаксис похож на GRANT:

REVOKE привилегии ON база_данных . таблица FROM ‘имя_пользователя’@’хост’;

Например, заберём все права на базу данных test_database у нашего пользователя:

REVOKE ALL PRIVILEGES ON test_database . * FROM 'test_user'@'localhost';

4. Создание суперпользователя MySQL

Если вам необходимо создать пользователя со всеми правами MySQL на замену для root, то можно использовать такую конструкцию:

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

Даём все привилегии для пользователя test_user над всеми базами данными и всеми таблицами. Но наш пользователь не сможет давать права другим пользователям. Чтобы это исправить, нужно дать ему привилегию GRANT, а для этого используется такая команда:

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

Теперь этот пользователь является суперпользователем для MySQL и, авторизовавшись от его имени в PhpMyAdmin, вы можете делать всё то же самое, что и с  помощью root.

Выводы

В этой статье мы рассмотрели, как создать пользователя MySQL в  Ubuntu или в любом другом дистрибутиве. Работа в командной строке с MySQL может показаться довольно сложной. Но сделать это надо всего один раз -после установки базы данных. А дальше можно выполнять все действия в Phpmyadmin.

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

Введение

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

Что означает выделенный текст

В этом руководстве любые строки, которые пользователь должен ввести или изменить, будут выделены цветом! Весь остальной текст можно просто скопировать и вставить.

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

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

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

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

Примечание: при добавлении пользователей в оболочке MySQL в данном руководстве мы будем в качестве хоста пользователя использовать localhost, а не IP-адрес сервера. localhost — это имя хоста, которое означает «этот компьютер», и MySQL работает с этим именем хоста особенным образом: когда пользователь на данном хосте выполняет вход в MySQL, СУБД будет пытаться подключиться к локальному серверу, используя файл сокета Unix. Таким образом, localhost обычно используется, если вы планируете подключение к вашему серверу через SSH или если вы запускаете локальный клиент mysql для подключения к локальному серверу MySQL.

В данный момент newuser не имеет прав на выполнение каких-либо действий с базами данных. Фактически, даже если newuser попытается выполнить вход (с помощью пароля password), он не сможет получить доступ к оболочке MySQL.

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

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

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

Обратите внимание, что в этом примере мы предоставляем newuser полный корневой доступ ко всему содержанию нашей базы данных. Хотя это может быть полезно для объяснения некоторых концепций MySQL, в большинстве случаев это может быть нецелесообразно и может отрицательно сказаться на безопасности вашей базы данных.

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

После этого внесенные вами изменения вступят в силу.

Предоставление пользователю различных прав

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

  • ALL PRIVILEGES — как мы уже увидели ранее, данный набор прав предоставляет пользователю MySQL полный доступ к определенной базе данных (если не выбрана ни одна база данных, предоставляется глобальный доступ к системе)
  • CREATE — позволяет пользователю создавать новые таблицы или базы данных
  • DROP — позволяет пользователю удалять таблицы или базы данных
  • DELETE — позволяет пользователю удалять строки из таблиц
  • INSERT — позволяет пользователю вставлять строки в таблицы
  • SELECT — позволяет пользователю выполнять команду SELECT для чтения данных из базы
  • UPDATE — позволяет пользователю обновлять строки таблицы
  • GRANT OPTION — позволяет пользователю предоставлять или отзывать права других пользователей

Чтобы предоставить конкретному пользователю какое-либо право, вы можете использовать следующую структуру команды:

  • GRANT type_of_permission ON database_name.table_name TO 'username'@'localhost';

Если вы хотите предоставить пользователю доступ к любой базе данных или любой таблице, необходимо поместить звездочку (*) на место имени базы данных или имени таблицы.

При каждом обновлении или изменении права необходимо использовать команду сброса привилегий.

Если вам требуется отозвать какое-либо право, структура команды будет практически идентична структуре команды, используемой для предоставления права:

  • REVOKE type_of_permission ON database_name.table_name FROM 'username'@'localhost';

Обратите внимание, что при отзыве прав синтаксис требует использования элемента FROM вместо элемента TO, который мы использовали при предоставлении прав.

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

  • SHOW GRANTS FOR 'username'@'localhost';

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

  • DROP USER 'username'@'localhost';

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

а затем войдите снова, введя следующую команду в терминале:

Заключение

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

Если вы хотите узнать больше об основах работы с MySQL, мы рекомендуем вам ознакомиться со следующими обучающими материалами:

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

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

Давайте выясним, чем же она хороша и как с ней работать.

База данных MySQL: что это такое и в чем ее преимущества

MySQL – это реляционная система управления базами данных с открытым исходным кодом, написанная на языках программирования C и C++. Благодаря ей можно оптимизировать работу сайта или мобильного/десктопного приложения.

База данных – это место для структурированного хранения данных. Например, чтобы найти в смартфоне сохраненную картинку, мы используем для этого галерею. В данном случае картинки – это данные, а галерея – база данных.

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

Если вести крупный ресурс без БД, то на это будет уходить очень много времени и средств. Базы данных группируют и упорядочивают информацию, упрощают получение доступа к ней. Чтобы администрировать такой большой поток данных, используются СУБД: MySQL, Microsoft SQL Server, PostgreSQL и другие.

MySQL хранит всю информацию в табличном виде. Извлечь данные из одной или нескольких таблиц можно с помощью запроса. Запросы в MySQL – это то, на чем все строится, с их помощью можно выполнять всевозможные операции с данным.

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

Принцип работы с таблицами следующий: к серверу, на котором хранятся и обрабатываются структурированные данные, подключаются клиенты для получения необходимой информации, а для взаимодействия между пользователем и сервером используется специальное ПО. Заполнение подобных и более крупных таблиц происходит с помощью языка программирования SQL.

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

  • быстрая скорость доступа и обработки данных;
  • надежная защита информации;
  • простота использования;
  • совместимость с Windows и Linux;
  • бесплатность;
  • возможность контролировать доступ к данным и учетным записям;
  • шифрование паролей.

На этом с теоретической частью закончим. 

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

После установки MySQL в базе данных автоматически будет создан новый пользователь root. Работать под таким именем небезопасно, поэтому рекомендуется создавать нового пользователя и выполнять необходимые действия под ним. Давайте рассмотрим два способа создания нового пользователя в MySQL – через phpMyAdmin и через консоль.

Вариант 1: с помощью phpMyAdmin

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

Чтобы добавить нового пользователя в phpMyAdmin, воспользуемся инструкцией:

  1. На главной странице через верхнее правое меню переходим во вкладку «Учетные записи пользователей». Затем выбираем «Добавить учетную запись пользователя».
  2. Следующим шагом вводим новое имя пользователя и хоста, прописываем пароль. В завершение жмем на кнопку «Генерировать».
  3. Теперь нам потребуется задать привилегии для нового пользователя. Если вы хотите установить доступ только для определенных баз данных, то можете пропустить этот пункт – просто нажмите на кнопку «Вперед», расположенную внизу страницы.
  4. Будет добавлен новый пользователь с указанным именем.

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

Вариант 2: через консоль

Если вы подключаетесь к серверу по SSH, то этот способ для вас. Нам потребуется выполнить несколько команд:

Первым дело активируем сервер базы данных:

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

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

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

Пока что пользователь не имеет разрешений, а значит, не может получить доступ к MySQL. Для решения такой проблемы пропишем еще одну строчку кода:

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

Мы выдали указанному пользователю все доступные права. Осталось сохранить внесенные изменения с помощью команды:

Готово! Теперь вы знаете, как создать нового пользователя в MySQL с правами доступа root.

Права доступа 

В MySQL выделяют следующие права доступа:

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

Как изменить права доступа в MySQL

Чтобы предоставить те или иные права доступа, мы можем воспользоваться административной панелью или консолью. 

Способ 1: через phpMyAdmin

Изменяем права доступа:

  1. Открываем phpMyAdmin и переходим в раздел «Учетные записи пользователей» – там находим нужного пользователя и напротив него нажимаем на кнопку «Редактировать привилегии».
  2. Следующим шагом перемещаемся в подраздел «База данных» и выбираем базу данных, для которой нужно установить доступ. Затем нажимаем «Вперед».
  3. После этого перед нами отобразится еще одно окно со всевозможными привилегиями. Если вы хотите выдать все права доступа, то в верхней части нажмите на кнопку «Отметить все». В противном случае укажите необходимые привилегии и нажмите на кнопку «Вперед».

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

Вариант 2: в терминале

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

GRANT [права] ON [наименование БД].[наименование таблицы] TO ‘user’@'localhost’;

Значения внутри скобок необходимо заменить:

  • наименование БД – указываем базу данных;
  • наименование таблицы – указываем имена таблиц, к которым необходимо выдать доступ, прописываем .*, чтобы разрешить доступ ко всем таблицам;
  • права — указываем тип прав, рассмотренный ранее;
  • user – имя пользователя.

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

GRANT [права], [права] ON *.* TO ‘user’@'localhost’;

Если нужно удалить права у выбранного пользователя:

REVOKE [права] ON [наименование БД].[ наименование таблицы] FROM ‘username’@'localhost’;

Забрать все права:

REVOKE ALL PRIVILEGES ON *.* FROM ‘user @'localhost’;

Полностью удалить пользователя можно командой:

DROP USER ‘user @'localhost’;

Как посмотреть права доступа в MySQL

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

SHOW GRANTS FOR 'user'@'localhost';

На этом моя статья подходит к концу. Надеюсь, что создать нового пользователя в MySQL для вас больше не проблема. Спасибо за внимание!

Привилегии пользователя MySQL ▷ Права и управление. Как дать права на базу данных MySQL

Базы данных (в т.ч. система MySQL) представляет собой сущность для хранения информации в виде таблиц. Дабы чужие БД не были доступны абсолютному каждому пользователю на сервере, существует система пользователей для этих баз данных. Сам доступ к какой-либо БД может быть назначен администратором (либо уполномоченным пользователем) другому пользователю, причем он может быть полным или в некоторой степени ограниченным. Более конкретно эта степень доступа выражается в привилегиях («правах» или «разрешениях»).

Содержание

Права для пользователей MySQL

Существует некоторое количество привилегий в системе БД MySQL которые указаны ниже с описанием. Последние привилегии являются привилегиями администраторского уровня, что явно указано лишь для справки. Полная информация о правах/ привилегиях доступна в документации разработчика MySQL:

CREATE — позволяет создавать новые базы данных и таблицы

DROP — позволяет удалять базы данных или таблицы

INSERT — позволяет добавлять строки к таблице.

UPDATE — позволяет изменять содержание строк таблиц. Не путать с ALTER, которая позволяет изменять саму структуру таблиц (количество строк/столбцов, типы столбцов).

DELETE — противоположна INSERT — позволяет удалять строки из таблицы.

ALTER — позволяет изменять структуру таблиц. Требует CREATE и INSERT привилегии.

SELECT — позволяет читать (выводит строки) таблицы, используя выборки по столбцам и/или по некоторым арифметическим и логическим критериям.

GRANT OPTION — позволяет назначить конкретные права определенному пользователю (также и отобрать). Возможно дать/отобрать только те права, которыми назначающий сам располагает.

LOCK TABLES — блокирует таблицу на время искусственного внесения в нее изменений (администрирование), чтобы данные внутри нее не могли измениться своим естественным путем (во время рабочего процесса).

REFERENCES — позволяет создавать связь между таблицами по внешнему ключу.

EVENT — дает право на создание/изменение/удаление заданий для планировщика

TRIGGER — позволяет создавать/изменять/удалять триггеры (привязываемые к определенным таблицам), которые при выполнении операций DELETE, UPDATE или INSERT совершают дополнительные действия.

INDEX — привилегия даёт право добавлять/удалять индексы к (из) таблицам. Сами индексы назначаются вручную, и дают возможность сэкономить время на поиске строк.

CREATE TEMPORARY TABLES — позволяет создавать временные таблицы на время сессии.

CREATE VIEW — позволяет создать некоторое представление в виде таблицы, которая фактически не существует как единая и содержит лишь данные других таблиц. К примеру, в этом представлении можно собрать определенные сгруппированные данные из трёх таблиц (оператором SELECT) и по факту собранные данные будут лишь ссылаться на данные этих 3-х таблиц и также будут объединением, не нуждающимся в собственной таблице.

SHOW VIEW — позволяет проверить каким запросом (из каких данных состоит) создано определенное представление, заданное с помощью CREATE VIEW

CREATE ROUTINE — позволяет создать процедуру, которая является набором заготовленным набором SQL-команд.

ALTER ROUTINE — позволяет изменить процедуру, созданную посредством CREATE ROUTINE.

EXECUTE — позволяет вызывать готовые процедуры.

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

CREATE TABLESPACE (admin) — позволяет создавать/изменять/удалять пространства таблиц. Само это пространство является логическим и не связано со структурой БД или схемой. Оно декларирует расположение объектов БД на физических носителях и используется для оптимизации системы БД.

CREATE USER (admin) — позволяет создавать/изменять/переименовывать/удалять пользователей баз данных.

PROCESS (admin) — разрешает доступ к информации о потоках (процессах) исполняющихся на сервере.

PROXY (admin) — позволяет войти пользователем под видом другого пользователя. Используется администратором для проверки/отладки прав доступа у необходимого пользователя.

RELOAD (admin) — разрешает использование оператора FLUSH, который чистит кеш MySQL

REPLICATION CLIENT (admin) — позволяет выполнять операции SHOW MASTER STATUS, SHOW SLAVE STATUS и SHOW BINARY LOG.

REPLICATION SLAVE (admin) — данная привилегия необходима пользователям ведомого сервера БД, чтобы этот сервер мог подключаться к ведущему серверу в роли ведомого. Без этой привилегии ведомые сервера не смогут запрашивать обновления баз данных и таблиц у ведущего сервера.

SHOW DATABASES (admin) — позволяет выполнять оператор SHOW DATABASES. Пользователи, не имеющие подобной привилегии, при выполнении данного оператора смогут лишь увидеть базы данных к которым у них есть какие-либо права.

SHUTDOWN (admin) — привилегия позволяет выполнить оператор SHUTDOWN, выключающий MySQL сервер.

SUPER (admin) — привилегия, дающая право на множество операций:

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

ALL (admin) — пользователю, получившему данную привилегию, автоматически назначаются все права в рамках уровня привилегий (возможных привилегий в принципе, согласно контексту выдачи привилегий). Не назначается только привилегия GRANT OPTION в данном случае.

Назначение прав для пользователей MySQL в панелях управления хостингом

Рассмотрим далее процедуру назначения прав пользователям MySQL в таких панелях управления хостингом, как:

  • DirectAdmin
  • cPanel
  • ISPmanager
  • Webuzo

DirectAdmin

На главной странице DirectAdmin из под уровня пользователя в меню Your Account переходим в раздел MySQL Management:

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

Тут мы можем как создать нового пользователя для данной базы путем перехода по Create New Database User, так и привязать к ней существующего,. Следует отметить, что нет специально отведенного интерфейса для управления пользователями. Он доступен только посредством перехода через какую-либо базу данных. Чтобы дать пользователю права — переходим по ссылке modify privileges:

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

После этого произойдет переход на страницу подтверждения сохранения. Всё, права выданы.

cPanel

На главной странице cPanel нам необходимо найти раздел Базы данных в нем перейти по Базы данных MySQL:

Все манипуляции с базами данных MySQL, пользователями БД и их правами производятся именно в этом меню.

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

Раздел Текущие базы данных обновится:

Создаем пользователя:

Раздел Текущие пользователи обновится:

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

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

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

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

Готово. Пользователь назначен базе данных.

ISPmanager Lite 5

При входе в ISPmanager в роли какого-либо пользователя необходимо перейти в Инструменты -> Базы данных из левого меню.

Далее на открывшемся интерфейсе управления базами данных необходимо выбрать необходимую базу и перейти в меню Users для перехода к интерфейсу управления пользователями БД. Если же баз данных нет, то создать новую можно перейдя по кнопке Add.

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

В интерфейсе управления базой данных нам представится список всех пользователей этой базы данных в текущем аккаунте ISPmanager. Для редактирования прав необходимо выделить конкретного пользователя, которому назначаем права, и перейти в меню Изменить

После этого мы увидим все права, которые можно назначить этому пользователю:

По-умолчанию при создании пользователя и БД назначаются все права. Изменяем те, которые нам необходимо и сохраняем результаты. После этого Вас вернет на страницу управления пользователями баз данных.

Webuzo

Webuzo состоит из 2-х панелей: администраторская и пользовательская. Переходим в пользовательскую панель и на главной странице выбираем Manage Databases

На открывшейся странице мы можем:

  • увидеть список существующих баз данных [Database(s)];
  • создать новую базу данных [Create Database];
  • увидеть список существующих пользователей баз данных [Database User(s)];
  • создать пользователя баз данных и назначить его определенной базе данных [Add User To Database]

Если целевой базы данных пока что не существует, то переходим в Create Database и создаем новую базу данных:

Если все же целевая база данных уже существует, то в управлении базами данных нам необходимо перейти в Add User To Database и создать нового пользователя БД или указать какого-либо существующего для его привязки к базе данных:

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

При успешном изменении прав в текущем окне появится надпись Database Privileges Updated. Задача выполнена.

Создание пользователя MySQL: руководство для начинающих

По умолчанию в MySQL будет только один пользователь — root. Это администратор c доступом ко всем базам данных и таблицам внутри этих баз.

В этой статье покажем, как создать нового пользователя MySQL и присвоить ему права доступа при помощи командной строки.

Это удобно, если нужно дать доступ к конкретной таблице другому человеку, но с ограниченными правами. Например, чтобы он мог её редактировать, но не мог удалить.

Что внутри

  1. Подключиться к серверу и зайти в MySQL
  2. Создать пользователя MySQL
  3. Настроить права доступа
  4. Забрать права доступа
  5. Удалить пользователя
  6. Выйти из MySQL

Подключиться к серверу и зайти в MySQL

Сначала подключитесь к серверу по SSH. Обычно хостинг-провайдеры присылают логин и пароль для подключения в письме об активации хостинга. У нас это письмо называется по-разному в зависимости от типа хостинга: «Ваш виртуальный хостинг готов к использованию», «Это ваш VPS готов?» или «Выделенный сервер заказывали?».

После подключения к серверу авторизуйтесь как root пользователь MySQL с помощью команды:

mysql -u root -p

Создать пользователя MySQL

В другой нашей статье мы показали, как создать базу данных MySQL. Ради примера создали в ней таблицу со списком товаров для книжного магазина. Предположим, что нужно передать управление таблицей другому человеку. Ему нужно создать нового пользователя MySQL. Используйте для этого команду CREATE USER с таким синтаксисом:

CREATE USER “имя_пользователя“@”хост” IDENTIFIED BY “пароль“;

Параметр «хост» в команде означает устройство, с которого человек сможет подключаться к серверу MySQL. Здесь вы можете использовать несколько вариантов:

  • localhost. Означает, что доступ к MySQL появится у пользователя только после того, как он подключится к серверу;
  • IP-адрес устройства в сети, с которого человек будет подключаться к MySQL;
  • %. Означает, что у пользователя будет доступ к MySQL с любого устройства.

В последних двух вариантах дополнительно подключаться к серверу не понадобится, но придётся сначала разрешить удалённые подключения в настройках MySQL.

Если не знаете, какой хост указать, используйте localhost. Это самый безопасный вариант. Придётся дополнительно подключаться к серверу, но зато злоумышленникам будет сложнее получить доступ к базе данных.

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

CREATE USER "bookstore_administrator"@"localhost" IDENTIFIED BY "Hgy467Hkgd";

Настроить права доступа

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

GRANT ПРИВИЛЕГИЯ, ПРИВИЛЕГИЯ ON база_данных.таблица TO “имя_пользователя“@”хост“;

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

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

  • ALL — дать все права к базе данных, кроме GRANT OPTION. Если вы не укажете название конкретной базы данных, пользователь получит полный доступ ко всему MySQL-серверу;
  • CREATE — право создавать новые базы данных и таблицы;
  • DELETE — право удалять строки из таблицы;
  • DROP — право удалять базы данных или таблицы;
  • GRANT OPTION — право назначать или отбирать права. Но получится дать или отобрать только те права, которыми владеет использующий команду пользователь;
  • INSERT — право создавать строки в таблице;
  • SELECT — право просматривать строки в таблицах;
  • UPDATE — право менять содержание строк в таблицах.

Теперь давайте предоставим нашему пользователю bookstore_administrator привилегии на создание таблиц в базе данных bookstore. А также разрешим добавлять записи в эти таблицы:

GRANT CREATE, INSERT ON bookstore.* TO "bookstore_administrator"@"localhost";

Звёздочка в нашем примере означает «все таблицы внутри базы данных bookstore». Вы также можете заменить имя базы данных на звездочку, чтобы присвоить пользователю права для всех баз данных на сервере.

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

FLUSH PRIVILEGES;

Теперь посмотрим, какие доступы есть у bookstore_administrator:

SHOW GRANTS FOR "bookstore_administrator"@"localhost";

Результат будет таким:

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

GRANT ALL ON bookstore.* TO "bookstore_administrator"@"localhost";

Перезагружаем привилегии командой FLUSH PRIVILEGES и проверяем командой SHOW GRANTS:

Забрать права доступа

Если привилегии нужно наоборот забрать, запустите команду REVOKE:

REVOKE ПРИВИЛЕГИЯ ON база_данных.таблица FROM “имя_пользователя“@”хост“;

Допустим, нам нужно забрать у пользователя bookstore_administrator право удалять таблицы в базе данных bookstore. Тогда команда будет такой:

REVOKE DROP ON bookstore.* FROM "bookstore_administrator"@"localhost";

Не забудьте после этого снова перезагрузить привилегии командой FLUSH PRIVILEGES.

Удалить пользователя MySQL

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

DROP USER “имя_пользователя“@”хост“;

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

Выйти из MySQL

В конце работы отключитесь от MySQL-сервера с помощью команды:

\q

Создание пользователя базы данных и базу данных mysql.

Речь пойдет о создании базы данных в Mysql, пользователя, назначении прав пользователю через консоль.

1.Установку MySQL мы пропустим, вы можете ее посмотреть в предыдущих темах, где затрагивалась тема установки MySQL.
Начнем с подключения к БД:

[root@localhost]# mysql -u root -p

2.Создаем новую базу с именем “dbase_name”:

create database dbase_name;

Просмотреть список текущих баз данных:

SHOW DATABASES;

3. Создаем пользователя MySQL с именем db_user и паролем ‘pass’:

create user 'db_user'@'localhost' identified by 'pass';

Назначаем привилегии пользователю:

GRANT ALL PRIVILEGES ON dbase_name.* to 'db_user'@'localhost'
    -> IDENTIFIED BY 'pass' WITH GRANT OPTION;

Для применения изменения запустите команду обновления:

FLUSH PRIVILEGES;.

4. Перезаходим под только созданным пользователем:

exit
mysql -u db_user -p

Выбираем для работу нашу БД:

use dbase_name;
Как удалить пользователя и базу данных Mysql.

Удалить пользователя:

DROP USER ‘db_user’@‘localhost’;

Удалить базу:

mysql>  drop database db_name;
Как посмотреть пользователей mysql

Заходим в базу данных Mysql:

#mysql -uroot -p

Выбираем системную базу данных MySQL:

mysql>use mysql;

Выводим список всех пользователей базы данных mysql:

mysql>select user from user;

Узнать привилегии пользователя в MySQL, используя консоль, выполняем:

mysql>show grants for %username%;

где %username% имя пользователя.

Показать MySQL пользователей вместе с хостами с которых им разрешено подключение:

mysql> SELECT user,host FROM mysql.user;

Посмотреть MySQL пользователей, их пароли и хосты:

mysql> SELECT user,host,password FROM mysql.user;

начиная с MySQL 5.7:

mysql> SELECT host, user, authentication_string FROM mysql.user;

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

Введение

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

Что означают основные моменты

В этом руководстве все строки, которые пользователь должен ввести или настроить, будут выделены! Остальные в основном должны быть скопированы и вставлены.

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

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

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

  
  • СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ 'newuser' @ 'localhost', ОПРЕДЕЛЕННЫЙ 'паролем';

Примечание: При добавлении пользователей в оболочку MySQL в этом руководстве мы укажем хост пользователя как localhost , а не IP-адрес сервера. localhost — это имя хоста, которое означает «этот компьютер», и MySQL обрабатывает это конкретное имя хоста особым образом: когда пользователь с этим хостом входит в MySQL, он пытается подключиться к локальному серверу с помощью файла сокета Unix. Таким образом, localhost обычно используется, когда вы планируете подключиться к серверу с помощью SSHing или когда вы запускаете локальный клиент mysql для подключения к локальному серверу MySQL.

На данный момент у нового пользователя нет разрешений что-либо делать с базами данных.Фактически, даже если новый пользователь попытается войти в систему (с паролем, паролем), он не сможет получить доступ к оболочке MySQL.

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

  
  • ПРЕДОСТАВЛЯТЬ ВСЕ ПРИВИЛЕГИИ *. * TO 'newuser' @ 'localhost';

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

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

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

  

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

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

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

  • ВСЕ ПРИВИЛЕГИИ — как мы видели ранее, это позволит пользователю MySQL получить полный доступ к указанной базе данных (или, если база данных не выбрана, глобальный доступ по всей системе)
  • CREATE — позволяет им создавать новые таблицы или базы данных
  • DROP — позволяет им удалять таблицы или базы данных
  • DELETE — позволяет им удалять строки из таблиц
  • INSERT — позволяет вставлять строки в таблицы
  • SELECT — позволяет им использовать команду SELECT для чтения через базы данных
  • ОБНОВЛЕНИЕ — разрешить им обновлять строки таблицы
  • GRANT OPTION — позволяет им предоставлять или удалять права других пользователей.

Чтобы предоставить конкретному пользователю разрешение, вы можете использовать этот фреймворк:

  
  • GRANT type_of_permission ON имя_базы_данных.table_name TO 'имя пользователя' @ 'localhost';

Если вы хотите предоставить им доступ к любой базе данных или к любой таблице, не забудьте поставить звездочку (*) вместо имени базы данных или имени таблицы.

Каждый раз, когда вы обновляете или изменяете разрешение, обязательно используйте команду Flush Privileges.

Если вам нужно отозвать разрешение, структура почти идентична его предоставлению:

  
  • REVOKE type_of_permission ON имя_базы_данных.table_name FROM 'имя пользователя' @ 'localhost';

Обратите внимание, что при отзыве разрешений синтаксис требует, чтобы вы использовали FROM вместо TO , как мы использовали при предоставлении разрешений.

Вы можете просмотреть текущие разрешения пользователя, запустив следующее:

  
  • ПОКАЗАТЬ ГРАНТЫ ДЛЯ 'username' @ 'localhost';

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

  
  • DROP USER 'имя пользователя' @ 'localhost';

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

  

и снова войдите в систему с помощью этой команды в терминале:

  

Заключение

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

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

MySQL :: Справочное руководство MySQL 8.0 :: 13.7.1.3 CREATE USER Statement

13.7.1.3 CREATE USER Заявление
  СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ [ЕСЛИ НЕ СУЩЕСТВУЕТ]
      пользователь  [ auth_option ] [,  user  [ auth_option ]]...
    ПО УМОЛЧАНИЮ РОЛЬ  роль  [,  роль ] ...
    [ТРЕБУЕТСЯ {НЕТ |  tls_option  [[И]  tls_option ] ...}]
    [WITH  resource_option  [ resource_option ] ...]
    [ password_option  |  lock_option ] ...
    [КОММЕНТАРИЙ ' comment_string ' | АТРИБУТ ' json_object ']

  пользователь :
    (см. Раздел 6.2.4, «Указание имен учетных записей»)

  auth_option : {
    ИДЕНТИФИЦИРОВАНО ' auth_string '
  | ОПРЕДЕЛЕННЫЙ СЛУЧАЙНЫМ ПАРОЛЕМ
  | ИДЕНТИФИЦИРОВАНО  auth_plugin 
  | ИДЕНТИФИЦИРОВАНО  auth_plugin  ПО ' auth_string '
  | ИДЕНТИФИЦИРОВАНО  auth_plugin  СЛУЧАЙНЫМ ПАРОЛЕМ
  | ИДЕНТИФИЦИРОВАНО  auth_plugin  AS ' auth_string '
}

  tls_option : {
   SSL
 | X509
 | ШИФР ' шифр '
 | Эмитент " эмитент "
 | SUBJECT ' Subject '
}

  resource_option : {
    MAX_QUERIES_PER_HOUR  количество 
  | MAX_UPDATES_PER_HOUR  количество 
  | MAX_CONNECTIONS_PER_HOUR  количество 
  | MAX_USER_CONNECTIONS  количество 
}

  password_option : {
    ИСТОЧНИК ПАРОЛЯ [ПО УМОЛЧАНИЮ | НИКОГДА | ИНТЕРВАЛ  N  ДЕНЬ]
  | ИСТОРИЯ ПАРОЛЕЙ {ПО УМОЛЧАНИЮ |  N }
  | ИНТЕРВАЛ ПОВТОРНОГО ИСПОЛЬЗОВАНИЯ ПАРОЛЯ {ПО УМОЛЧАНИЮ |  N  ДЕНЬ}
  | ТРЕБУЕТСЯ ПАРОЛЬ [ПО УМОЛЧАНИЮ | ПО ЖЕЛАНИЮ]
  | FAILED_LOGIN_ATTEMPTS  N 
  | PASSWORD_LOCK_TIME { N  | НЕОГРАНИЧЕННЫЙ}
}

  lock_option : {
    БЛОКИРОВКА УЧЕТНОЙ ЗАПИСИ
  | РАЗБЛОКИРОВКА СЧЕТА
}  

Оператор CREATE USER создает
новые учетные записи MySQL.Он включает аутентификацию, роль, SSL / TLS,
resource-limit и свойства управления паролями должны быть
установлен для новых учетных записей. Он также контролирует,
изначально заблокированы или разблокированы.

Чтобы использовать CREATE USER , у вас должен быть
глобальная привилегия CREATE USER ,
или привилегия INSERT для
Системная схема mysql . Когда
read_only системная переменная
включен, CREATE USER дополнительно
требуется CONNECTION_ADMIN
привилегия (или устаревшая
SUPER привилегия).

Начиная с MySQL 8.0.22, СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ
завершается с ошибкой, если любая создаваемая учетная запись названа как
DEFINER атрибут для любого сохраненного объекта.
(То есть утверждение не выполняется, если создание учетной записи вызовет
учетную запись, чтобы принять в настоящее время осиротевший хранимый объект.)
все равно выполнить операцию, у вас должен быть
SET_USER_ID привилегия; в этом
В этом случае инструкция завершается успешно с предупреждением, а не с ошибкой
с ошибкой.Без
SET_USER_ID , чтобы выполнить
операция создания пользователя, отбросьте бесхозные объекты, создайте
учетную запись и предоставьте ее привилегии, а затем заново создайте удаленный
объекты. Для получения дополнительной информации, в том числе о том, как идентифицировать
какие объекты называют данную учетную запись
DEFINER атрибут, см.
Сиротские хранимые объекты.

CREATE USER либо успешно для
всех названных пользователей или откатывается и не действует, если какая-либо ошибка
имеет место.По умолчанию при попытке создать пользователя возникает ошибка.
это уже существует. Если ЕСЛИ НЕ СУЩЕСТВУЕТ
дается предложение, оператор выдает предупреждение для каждого названного
пользователь, который уже существует, а не ошибка.

CREATE имеет несколько аспектов.
Заявление USER
, описанное в следующих разделах:

Для каждой учетной записи СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ
создает новую строку в MySQL .пользовательская система
Таблица. Строка учетной записи отражает свойства, указанные в
заявление. Неуказанные свойства устанавливаются по умолчанию
значения:

  • Аутентификация: плагин аутентификации, определяемый
    default_authentication_plugin
    системная переменная и пустые учетные данные

  • Роль по умолчанию: НЕТ

  • SSL / TLS: НЕТ

  • Лимиты ресурсов: Без ограничений

  • Управление паролями: ИСКЛЮЧИТЬ ПАРОЛЬ ПО УМОЛЧАНИЮ
    ПАРОЛЬ ИСТОРИЯ ПО УМОЛЧАНИЮ ПАРОЛЬ ПОВТОРНОЕ ИСПОЛЬЗОВАНИЕ ИНТЕРВАЛ ПО УМОЛЧАНИЮ
    ТРЕБУЕТСЯ ПАРОЛЬ ПО УМОЛЧАНИЮ
    ; не удалось войти
    отслеживание и временная блокировка аккаунта отключены

  • Блокировка счета: РАЗБЛОКИРОВКА АККАУНТА

Учетная запись при первом создании не имеет привилегий и используется по умолчанию.
роль НЕТ .Чтобы назначить привилегии или
ролей используйте оператор GRANT .

Каждое имя учетной записи использует формат, описанный в
Раздел 6.2.4, «Указание имен учетных записей». Например:

  СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ 'jeffrey' @ 'localhost', ОПРЕДЕЛЕННЫЙ ' паролем ';  

Часть имени хоста в имени учетной записи, если она не указана, используется по умолчанию.
до '%' .

Каждому пользователю значение имени учетной записи
может сопровождаться необязательным
auth_option значение, которое указывает
как аутентифицируется учетная запись.Эти значения включают учетную запись
плагины аутентификации и учетные данные (например,
пароль) необходимо указать. Каждый
auth_option значение применяется
только на счет, указанный сразу
предшествующий этому.

Следуя спецификациям пользователя ,
заявление может включать опции для SSL / TLS, ограничения ресурса,
управление паролями и свойства блокировки.Все такие варианты
являются глобальными к заявлению и применяются к
всех счетов, указанных в выписке.

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

  СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ 'jeffrey' @ 'localhost'
  ИДЕНТИФИЦИРОВАНО ' новый_пароль ' ИСКЛЮЧЕНИЕ ПАРОЛЯ;  

Пример: создайте учетную запись, которая использует
caching_sha2_password плагин аутентификации
и заданный пароль.Требовать выбора нового пароля
каждые 180 дней и включите отслеживание неудачных попыток входа, чтобы
три последовательных неверных пароля вызывают временную учетную запись
блокировка на два дня:

  СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ 'jeffrey' @ 'localhost'
  ИДЕНТИФИЦИРОВАНО caching_sha2_password ПО « new_password »
  ИНТЕРВАЛ ИСТЕЧЕНИЯ ПАРОЛЯ 180 ДНЕЙ
  FAILED_LOGIN_ATTEMPTS 3 PASSWORD_LOCK_TIME 2;  

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

  СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ
  'jeffrey' @ 'localhost' ИДЕНТИФИЦИРОВАН mysql_native_password
                                   BY ' new_password1 ',
  'jeanne' @ 'localhost' ИДЕНТИФИЦИРОВАН caching_sha2_password
                                  BY ' new_password2 '
  ТРЕБУЕТСЯ X509 С MAX_QUERIES_PER_HOUR 60
  ИСТОРИЯ ПАРОЛЕЙ 5
  БЛОКИРОВКА СЧЕТА;  

Каждое значение auth_option
( ИДЕНТИФИЦИРОВАН... BY в данном случае)
применяется только к учетной записи, названной непосредственно перед ней, поэтому
каждая учетная запись использует следующую аутентификацию
плагин и пароль.

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

  • Соединения должны выполняться с использованием действующего сертификата X.509.

  • Допускается до 60 запросов в час.

  • При изменении пароля нельзя повторно использовать ни один из пяти последних
    пароли.

  • Учетная запись изначально заблокирована, поэтому фактически это
    заполнитель и не может использоваться до тех пор, пока администратор
    разблокирует его.

Начиная с MySQL 8.0.21, вы можете дополнительно создать пользователя
с комментарием пользователя или атрибутом пользователя, как описано здесь:

  • Комментарий пользователей

    Чтобы установить комментарий пользователя, добавьте КОММЕНТАРИЙ
    ' user_comment '
    к
    CREATE USER оператор, где
    user_comment — текст
    комментарий пользователя.

    Пример (без других опций):

      СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ 'jon' @ 'localhost' КОММЕНТАРИЙ 'Некоторая информация о Джоне';  
  • Атрибут пользователя

    Атрибут пользователя — это объект JSON, состоящий из одного или нескольких
    пары ключ-значение и задаются включением
    АТРИБУТ
    ' json_object '
    как часть
    из СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ . json_object должен быть действительным
    Объект JSON.

    Пример (без других опций):

      СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ 'jim' @ 'localhost'
        АТРИБУТ '{"имя": "Джеймс", "имя": "Скотт", "телефон": "123-456-7890"}';  

Комментарии пользователей и атрибуты пользователей хранятся вместе в
АТРИБУТ колонка
ИНФОРМАЦИЯ_СХЕМА.USER_ATTRIBUTES
Таблица. Этот запрос отображает строку в этой таблице, вставленную пользователем
только что показанный оператор для создания пользователя
jin @ localhost :

  mysql> ВЫБРАТЬ * ИЗ INFORMATION_SCHEMA.USER_ATTRIBUTES
    -> ГДЕ ПОЛЬЗОВАТЕЛЬ = 'jim' И ХОСТ = 'localhost' \ G
************************** 1. строка ******************** *******
     ПОЛЬЗОВАТЕЛЬ: Джим
     ВЕДУЩИЙ: localhost
АТРИБУТ: {"fname": "Джеймс", "lname": "Скотт", "phone": "123-456-7890"}
1 ряд в комплекте (0.00 сек)  

Вариант КОММЕНТАРИЙ на самом деле обеспечивает
ярлык для установки атрибута пользователя, единственный элемент которого имеет
комментарий в качестве ключа, значение которого
аргумент, предоставленный для опции. Вы можете увидеть это по
выполнение оператора CREATE USER 'jon' @ 'localhost'
КОММЕНТАРИЙ 'Некоторая информация о Джоне'
и наблюдение
строка, которую он вставляет в
USER_ATTRIBUTES таблица:

  mysql> СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ 'jon' @ 'localhost' КОММЕНТАРИЙ 'Некоторая информация о Джоне';
Запрос выполнен, затронуты 0 строк (0.06 сек)

mysql> ВЫБРАТЬ * ИЗ ИНФОРМАЦИИ_SCHEMA.USER_ATTRIBUTES
    -> ГДЕ ПОЛЬЗОВАТЕЛЬ = 'Джон' И ХОСТ = 'локальный хост';
+ ------ + ----------- + ------------------------------ ------------- +
| ПОЛЬЗОВАТЕЛЬ | ВЕДУЩИЙ | АТРИБУТ |
+ ------ + ----------- + ------------------------------ ------------- +
| Джон | localhost | {"comment": "Немного информации о Джоне"} |
+ ------ + ----------- + ------------------------------ ------------- +
1 ряд в комплекте (0,00 сек)  

Вы не можете использовать КОММЕНТАРИЙ и
АТРИБУТ вместе в одном
CREATE USER statement; пытаюсь сделать это
вызывает синтаксическую ошибку.Чтобы установить комментарий пользователя одновременно с
установив атрибут пользователя, используйте ATTRIBUTE и
включить в свой аргумент значение с
комментарий ключ, например:

  mysql> СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ 'bill' @ 'localhost'
    -> АТРИБУТ '{"fname": "Уильям", "lname": "Шмидт",
    -> "комментарий": "Разработчик сайта"} ';
Запрос в порядке, затронуты 0 строк (0,16 сек)  

Поскольку содержимое строки ATTRIBUTE является
JSON, вы можете использовать любой подходящий MySQL JSON
функции или операторы для управления им, как показано здесь:

  mysql> ВЫБРАТЬ
    -> ПОЛЬЗОВАТЕЛЬ КАК Пользователь,
    -> HOST AS Host,
    -> СЦЕПИТЬ (АТРИБУТ - >> "$.fname "," ", АТРИБУТ - >>" $. lname ") AS 'Полное имя',
    -> АТРИБУТ - >> "$. Comment" AS Комментарий
    -> ИЗ INFORMATION_SCHEMA.USER_ATTRIBUTES
    -> ГДЕ ПОЛЬЗОВАТЕЛЬ = 'счет' И ХОЗЯИН = 'локальный хост';
+ ------ + ----------- + ----------------- + ------------ ------- +
| Пользователь | Хост | Полное имя | Комментарий |
+ ------ + ----------- + ----------------- + ------------ ------- +
| счет | localhost | Уильям Шмидт | Разработчик веб-сайтов |
+ ------ + ----------- + ----------------- + ------------ ------- +
1 ряд в комплекте (0.00 сек)  

Чтобы установить или внести изменения в пользовательский комментарий или пользовательский
атрибут для существующего пользователя, вы можете использовать
КОММЕНТАРИЙ или АТРИБУТ
вариант с ALTER USER
утверждение.

Поскольку пользовательский комментарий и пользовательский атрибут сохраняются
вместе внутри в едином
JSON столбец, устанавливает верхний
ограничение на их максимальный комбинированный размер; видеть
Требования к хранилищу JSON, подробнее
Информация.

См. Также описание информационной схемы.
USER_ATTRIBUTES для получения дополнительной информации
информация и примеры.

СОЗДАТЬ параметры аутентификации ПОЛЬЗОВАТЕЛЯ

После имени учетной записи может следовать
auth_option опция аутентификации
который указывает плагин аутентификации учетной записи, учетные данные,
или оба.

Примечание

Положения о генерации случайного пароля распространяются только на
учетные записи, использующие плагин аутентификации, который хранит
учетные данные внутри MySQL.Для учетных записей, использующих
плагин, который выполняет аутентификацию по учетным данным
системе, которая является внешней по отношению к MySQL, управление паролями должно
также обрабатываться извне по отношению к этой системе. Для большего
информацию о внутреннем хранилище учетных данных см.
Раздел 6.2.15, «Управление паролями».

  • auth_plugin именует
    плагин аутентификации. Имя плагина можно заключить в кавычки.
    строковый литерал или имя без кавычек.Имена плагинов
    хранится в подключаемом модуле столбце файла
    mysql.user системная таблица.

    Для auth_option синтаксис, который
    не указывает плагин аутентификации, по умолчанию
    плагин обозначается значением
    default_authentication_plugin
    системная переменная. Описание каждого плагина см.
    Раздел 6.4.1, «Плагины аутентификации».

  • Учетные данные, которые хранятся внутри, хранятся в
    mysql.user системная таблица. An
    ' auth_string '
    значение или СЛУЧАЙНЫЙ ПАРОЛЬ указывает
    учетные данные в виде открытого текста (в незашифрованном виде)
    строка или хеширование в формате, ожидаемом
    плагин аутентификации, связанный с учетной записью,
    соответственно:

    • Для синтаксиса, использующего BY
      ' auth_string '
      ,
      строка является открытым текстом и передается в
      плагин аутентификации для возможного хеширования.Результат
      возвращаемый плагином сохраняется в
      mysql.user таблица. Плагин может использовать
      значение, как указано, и в этом случае хеширование не выполняется
      имеет место.

    • Для синтаксиса, использующего BY RANDOM
      ПАРОЛЬ
      , MySQL генерирует случайный пароль
      и как открытый текст и передает его аутентификации
      плагин для возможного хеширования.Результат, возвращенный
      плагин хранится в
      mysql.user таблица. Плагин может использовать
      значение, как указано, и в этом случае хеширование не выполняется
      имеет место.

      Случайно сгенерированные пароли доступны в MySQL.
      8.0.18 и имеют характеристики, описанные в
      Генерация случайного пароля.

    • Для синтаксиса, использующего AS
      ' auth_string '
      ,
      предполагается, что строка уже имеет формат
      плагин аутентификации требует и хранится как есть в
      файл mysql.таблица пользователя . Если плагин
      требуется хешированное значение, значение должно быть уже
      хеширование в формате, подходящем для плагина;
      в противном случае значение не может быть использовано плагином и
      правильная аутентификация клиентских подключений не
      происходить.

      Начиная с MySQL 8.0.17, хешированная строка может быть либо
      строковый литерал или шестнадцатеричное значение. Последний
      соответствует типу значения, отображаемого
      SHOW CREATE USER для
      хэши паролей, содержащие непечатаемые символы, когда
      в
      print_identified_with_as_hex
      системная переменная включена.

    • Если плагин аутентификации не выполняет хеширование
      строка аутентификации, BY
      ' auth_string '
      и
      AS
      ' auth_string '

      предложения имеют тот же эффект: аутентификация
      строка хранится как в
      mysql.user системная таблица.

CREATE USER разрешает эти
auth_option синтаксисы:

  • ИДЕНТИФИЦИРОВАНО
    ' auth_string '

    Устанавливает плагин аутентификации учетной записи по умолчанию
    плагин, передает открытый текст
    ' auth_string '
    значение плагина для возможного хеширования и сохраняет
    результат в строке счета в
    MySQL.пользовательская системная таблица.

  • ОПРЕДЕЛЕННО СЛУЧАЙНЫМ ПАРОЛЕМ

    Устанавливает плагин аутентификации учетной записи по умолчанию
    плагин, генерирует случайный пароль, передает открытый текст
    значение пароля к плагину для возможного хеширования, и
    сохраняет результат в строке аккаунта в
    mysql.user системная таблица. Заявление
    также возвращает пароль в виде открытого текста в результирующем наборе
    сделать его доступным для пользователя или приложения, выполняющего
    утверждение.Подробнее о наборе результатов и
    характеристики случайно сгенерированных паролей см.
    Генерация случайного пароля.

  • ИДЕНТИФИЦИРОВАНО
    auth_plugin

    Устанавливает плагин аутентификации учетной записи на
    auth_plugin , очищает
    учетные данные в пустую строку и сохраняет результат в
    строка учетной записи в файле mysql.пользователь
    системная таблица.

  • ИДЕНТИФИЦИРОВАНО
    auth_plugin BY
    ' auth_string '

    Устанавливает плагин аутентификации учетной записи на
    auth_plugin , проходит
    открытый текст
    ' auth_string '
    значение плагина для возможного хеширования и сохраняет
    результат в строке счета в
    MySQL.пользовательская системная таблица.

  • ИДЕНТИФИЦИРОВАНО
    auth_plugin СЛУЧАЙНО
    ПАРОЛЬ

    Устанавливает плагин аутентификации учетной записи на
    auth_plugin , генерирует случайный
    пароль, передает значение пароля в открытом виде в
    плагин для возможного хеширования и сохраняет результат в
    строка account в файле mysql.пользовательская система
    Таблица. Оператор также возвращает пароль в открытом виде.
    в результирующем наборе, чтобы сделать его доступным для пользователя или
    приложение, выполняющее инструкцию. Подробнее о
    набор результатов и характеристики случайно сгенерированных
    пароли, см.
    Генерация случайного пароля.

  • ИДЕНТИФИЦИРОВАНО
    auth_plugin AS
    ' auth_string '

    Устанавливает плагин аутентификации учетной записи на
    auth_plugin и хранит
    ' auth_string '
    значение, как в mysql.аккаунт пользователя
    строка. Если плагину требуется хешированная строка, она будет
    предполагается, что уже хеширован в формате плагина
    требует.

Пример: укажите пароль в виде открытого текста; плагин по умолчанию
используется:

  СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ 'jeffrey' @ 'localhost'
  ОПРЕДЕЛЕННЫЙ « пароль »;  

Пример: укажите плагин аутентификации вместе с
значение пароля в открытом виде:

  СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ 'jeffrey' @ 'localhost'
  ИДЕНТИФИЦИРОВАНО mysql_native_password ПО ' пароль ';  

В каждом случае значение пароля, хранящееся в строке учетной записи, равно
значение открытого текста
' пароль ' после
он был хеширован плагином аутентификации, связанным
со счетом.

Для получения дополнительной информации об установке паролей и
плагины аутентификации, см.
Раздел 6.2.14, «Назначение паролей учетных записей» и
Раздел 6.2.17, «Подключаемая аутентификация».

РОЛЬ ПО УМОЛЧАНИЮ Пункт определяет, какие роли
становятся активными, когда пользователь подключается к серверу и
аутентифицирует, или когда пользователь выполняет
УСТАНОВИТЬ РОЛЬ
Заявление DEFAULT
во время сеанса.

Каждое имя роли использует формат, описанный в
Раздел 6.2.5, «Указание имен ролей». Например:

  СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ 'joe'@'10.0.0.1' РОЛЬ ПО УМОЛЧАНИЮ администратор, разработчик;  

Часть имени хоста в имени роли, если она не указана, по умолчанию
'%' .

Пункт DEFAULT ROLE разрешает список
одно или несколько имен ролей, разделенных запятыми. Эти роли не должны
существуют в то время СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ
выполняется.

CREATE USER SSL / TLS Options

MySQL может проверять атрибуты сертификата X.509 в дополнение к
обычная аутентификация, основанная на имени пользователя и
реквизиты для входа. Для справочной информации об использовании SSL / TLS
с MySQL см. Раздел 6.3, «Использование зашифрованных соединений».

Чтобы указать параметры, связанные с SSL / TLS, для учетной записи MySQL, используйте
REQUIRE Предложение , определяющее один или несколько
tls_option значений.

Порядок ТРЕБУЕТ опций значения не имеет,
но нельзя указать ни один вариант дважды. В
Ключевое слово И является необязательным между
ТРЕБУЕТСЯ опции.

CREATE USER разрешает эти
tls_option значения:

  • НЕТ

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

      СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ 'jeffrey' @ 'localhost' НЕ ТРЕБУЕТСЯ НЕТ;  

    Клиенты пытаются установить безопасное соединение с помощью
    По умолчанию. Для клиентов, у которых есть ТРЕБУЕТСЯ
    НЕТ
    , попытка подключения возвращается к
    незашифрованное соединение, если безопасное соединение не может быть
    учредил.Чтобы потребовать зашифрованное соединение, клиент
    нужно указать только
    --ssl-mode = ТРЕБУЕТСЯ
    вариант; попытка подключения не удалась, если безопасный
    соединение не может быть установлено.

    НЕТ — значение по умолчанию, если не связано с SSL
    ТРЕБУЕТСЯ опции указаны.

  • SSL

    Сообщает серверу разрешить только зашифрованные соединения для
    все счета, указанные в выписке.

      СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ 'jeffrey' @ 'localhost' ТРЕБУЕТСЯ SSL;  

    Клиенты пытаются установить безопасное соединение с помощью
    По умолчанию. Для аккаунтов с ТРЕБУЕТСЯ
    SSL
    , попытка подключения не удалась, если безопасный
    соединение не может быть установлено.

  • X509

    Для всех счетов, указанных в заявлении, требуется, чтобы
    клиенты представляют действующий сертификат, но точный
    сертификат, эмитент и тема не имеют значения.Единственный
    требование состоит в том, что должна быть возможность проверить его
    подпись одним из сертификатов ЦС. Использование X.509
    сертификаты всегда подразумевают шифрование, поэтому
    В этом случае опция SSL не нужна.

      СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ 'jeffrey' @ 'localhost' REQUIRE X509;  

    Для счетов с номером REQUIRE X509 клиенты
    необходимо указать --ssl-key
    и --ssl-cert варианты для
    соединять.(Рекомендуется, но не обязательно,
    --ssl-ca также необходимо указать
    чтобы публичный сертификат, предоставленный сервером, мог
    быть проверено.) Это верно для Эмитент
    и SUBJECT , потому что те
    ТРЕБОВАТЬ Опции подразумевают требования
    из X509 .

  • ЭМИТЕНТ
    ' эмитент '

    Для всех счетов, указанных в заявлении, требуется, чтобы
    клиенты представляют действительный сертификат X.509 сертификат, выданный ЦС
    ' эмитент ' . Если
    клиент представляет действительный сертификат, но имеет
    другой эмитент, сервер отклоняет соединение. Использовать
    сертификатов X.509 всегда подразумевает шифрование, поэтому
    В этом случае опция SSL не нужна.

      СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ 'jeffrey' @ 'localhost'
      ТРЕБУЕТСЯ ЭМИТЕНТА / C = SE / ST = Stockholm / L = Stockholm /
        O = MySQL / CN = CA / emailAddress = ca @ example.com ';  

    Поскольку ISSUER подразумевает требования
    из X509 , клиенты должны указать
    --ssl-key и
    --ssl-cert варианты для
    соединять. (Рекомендуется, но не обязательно,
    --ssl-ca также необходимо указать
    чтобы публичный сертификат, предоставленный сервером, мог
    быть проверено.)

  • ТЕМА
    ' субъект '

    Для всех счетов, указанных в заявлении, требуется, чтобы
    клиенты представляют действительный сертификат X.509 сертификат, содержащий
    предмет предмет . Если клиент
    представляет сертификат, который действителен, но имеет другой
    субъект, сервер отклоняет соединение. Использование X.509
    сертификаты всегда подразумевают шифрование, поэтому
    В этом случае опция SSL не нужна.

      СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ 'jeffrey' @ 'localhost'
      ТРЕБУЕТСЯ ТЕМА '/ C = SE / ST = Stockholm / L = Stockholm /
        O = демонстрационный клиентский сертификат MySQL /
        CN = client / emailAddress = client @ example.com ';  

    MySQL выполняет простое сравнение строк
    ' субъект '
    значение к значению в сертификате, поэтому буквенный регистр и
    заказ компонентов должен быть дан точно так, как указано в
    сертификат.

    Поскольку SUBJECT подразумевает
    требования X509 , клиенты должны
    укажите --ssl-key и
    --ssl-cert варианты для
    соединять.(Рекомендуется, но не обязательно,
    --ssl-ca также необходимо указать
    чтобы публичный сертификат, предоставленный сервером, мог
    быть проверено.)

  • ШИФР
    ' шифр '

    Для всех счетов, указанных в заявлении, требуется
    особый метод шифрования для шифрования соединений. Этот
    опция необходима, чтобы гарантировать, что шифры и длина ключа
    используется достаточная прочность.Шифрование может быть слабым, если
    используются старые алгоритмы с использованием коротких ключей шифрования.

      СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ 'jeffrey' @ 'localhost'
      ТРЕБУЕТСЯ ШИФРА «EDH-RSA-DES-CBC3-SHA»;  

SUBJECT , ISSUER и
CIPHER Опции можно комбинировать в
ТРЕБОВАТЬ пункт:

  СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ 'jeffrey' @ 'localhost'
  ТРЕБУЕТСЯ ТЕМА '/ C = SE / ST = Stockholm / L = Stockholm /
    O = демонстрационный клиентский сертификат MySQL /
    CN = client / emailAddress = client @ example.com '
  И Эмитент '/ C = SE / ST = Stockholm / L = Stockholm /
    O=MySQL/CN=CA/[email protected] '
  И ШИФР 'EDH-RSA-DES-CBC3-SHA';  
Параметры ограничения ресурсов CREATE USER

Можно установить ограничения на использование ресурсов сервера
учетной записи, как описано в Раздел 6.2.20, «Установка ограничений ресурсов учетной записи».
Для этого используйте предложение WITH , которое указывает
одно или несколько значений resource_option .

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

CREATE USER разрешает эти
resource_option значения:

  • MAX_QUERIES_PER_HOUR
    кол-во
    ,
    MAX_UPDATES_PER_HOUR
    кол-во
    ,
    MAX_CONNECTIONS_PER_HOUR
    количество

    Для всех счетов, указанных в выписке, эти параметры
    ограничить количество запросов, обновлений и подключений к
    сервер разрешен для каждой учетной записи в течение любого заданного
    часовой период.Если count
    0 (по умолчанию), это означает, что есть
    нет ограничений для учетной записи.

  • MAX_USER_CONNECTIONS
    количество

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

Пример:

  СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ 'jeffrey' @ 'localhost'
  С MAX_QUERIES_PER_HOUR 500 MAX_UPDATES_PER_HOUR 100;  
CREATE USER Параметры управления паролями

CREATE USER поддерживает несколько
password_option значения пароля
управление:

  • Варианты истечения срока действия пароля: вы можете истечь срок действия учетной записи
    пароль вручную и установить срок его действия
    политика.Параметры политики не ограничивают срок действия пароля.
    Вместо этого они определяют, как сервер применяет автоматические
    истечение срока действия учетной записи в зависимости от возраста пароля, который
    оценивается с даты и времени последней учетной записи
    изменение пароля.

  • Параметры повторного использования пароля: вы можете ограничить повторное использование пароля
    в зависимости от количества смен пароля, прошедшего времени или
    оба.

  • Параметры, требующие подтверждения пароля: Вы можете указать
    должны ли попытки изменить пароль учетной записи
    укажите текущий пароль, как подтверждение того, что
    пользователь, пытающийся внести изменение, на самом деле знает
    Текущий пароль.

  • Параметры отслеживания неудачного входа в систему с неверным паролем: вы можете
    заставляют сервер отслеживать неудачные попытки входа в систему и
    временно заблокировать учетные записи, для которых слишком много последовательных
    даны неверные пароли. Необходимое количество
    сбои и время блокировки настраиваются.

В этом разделе описан синтаксис для управления паролями.
параметры. Для получения информации об установлении политики для
управление паролями, см.
Раздел 6.2.15, «Управление паролями».

Если несколько параметров управления паролями заданного типа
указано, последний имеет приоритет. Например,
ИСТОЧНИК ПАРОЛЯ ПО УМОЛЧАНИЮ ИСТОЧНИК ПАРОЛЯ ПО УМОЛЧАНИЮ
НИКОГДА
не совпадает с ИСКЛЮЧАЕТСЯ ПАРОЛЬ
НИКОГДА
.

Примечание

За исключением параметров, относящихся к неудачному входу в систему
параметры отслеживания и управления паролями применяются только к учетным записям
которые используют плагин аутентификации, который хранит учетные данные
внутри MySQL.Для учетных записей, использующих плагин,
выполняет аутентификацию по системе учетных данных, которая
внешний по отношению к MySQL, управление паролями должно осуществляться
внешне также против этой системы. Для дополнительной информации
о внутреннем хранилище учетных данных см.
Раздел 6.2.15, «Управление паролями».

У клиента просрочен пароль, если пароль учетной записи был
истек вручную или считается, что срок действия пароля больше
чем его разрешенный срок службы на автоматическое истечение срока
политика.В этом случае сервер либо отключает клиента
или ограничивает разрешенные ему операции (см.
Раздел 6.2.16, «Обработка сервером просроченных паролей»). Операции
выполненный ограниченным клиентом приведет к ошибке до тех пор, пока
пользователь устанавливает новый пароль учетной записи.

CREATE USER разрешает эти
password_option значений для
контроль истечения срока действия пароля:

  • ИСТОЧНИК ПАРОЛЯ

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

      СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ 'jeffrey' @ 'localhost' ИСТОЧНИК ПАРОЛЯ;  
  • ИСТОЧНИК ПАРОЛЯ ПО УМОЛЧАНИЮ

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

      СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ 'jeffrey' @ 'localhost' ПАРОЛЬ ИСТЕЧИТЬСЯ ПО УМОЛЧАНИЮ;  
  • ПАРОЛЬ НЕ СРОК ДЕЙСТВИЯ

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

      СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ 'jeffrey' @ 'localhost' ПАРОЛЬ НИКОГДА НЕ СРОК;  
  • ИНТЕРВАЛ ИСКЛЮЧЕНИЯ ПАРОЛЯ
    N ДЕНЬ

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

      СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ 'jeffrey' @ 'localhost' ПАРОЛЬ ИСТОЧНИК ИНТЕРВАЛА 180 ДНЕЙ;  

CREATE USER разрешает эти
password_option значений для
контроль повторного использования предыдущих паролей в зависимости от необходимости
минимальное количество смен пароля:

  • ИСТОРИЯ ПАРОЛЕЙ ПО УМОЛЧАНИЮ

    Устанавливает все учетные записи, названные в заявлении, таким образом, чтобы
    применяется глобальная политика в отношении длины истории паролей,
    запретить повторное использование паролей до количества изменений
    указанный
    история_паролей система
    Переменная.

      СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ 'jeffrey' @ 'localhost' ИСТОРИЯ ПАРОЛЕЙ ПО УМОЛЧАНИЮ;  
  • ИСТОРИЯ ПАРОЛЯ

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

      СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ 'jeffrey' @ 'localhost' ИСТОРИЯ ПАРОЛЕЙ 6;  

CREATE USER разрешает эти
password_option значений для
контроль повторного использования предыдущих паролей в зависимости от прошедшего времени:

  • ИНТЕРВАЛ ПОВТОРНОГО ИСПОЛЬЗОВАНИЯ ПАРОЛЯ ПО УМОЛЧАНИЮ

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

      СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ 'jeffrey' @ 'localhost' ПАРОЛЬ ПОВТОРНОЕ ИСПОЛЬЗОВАНИЕ ИНТЕРВАЛ ПО УМОЛЧАНИЮ;  
  • ИНТЕРВАЛ ПОВТОРНОГО ИСПОЛЬЗОВАНИЯ ПАРОЛЯ
    N ДЕНЬ

    Этот параметр с истекшим временем переопределяет глобальную политику для
    все счета, указанные в выписке. Для каждого он устанавливает
    интервал повторного использования пароля до N
    дней, чтобы запретить повторное использование паролей новее, чем это
    дней.Следующая инструкция запрещает повторное использование пароля для
    360 дней:

      СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ 'jeffrey' @ 'localhost' ПАРОЛЬ ПОВТОРНОЕ ИСПОЛЬЗОВАНИЕ ИНТЕРВАЛ 360 ДНЕЙ;  

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

  • ПАРОЛЬ ТРЕБУЕТСЯ ТОК

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

      СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ 'jeffrey' @ 'localhost' ТРЕБУЕТСЯ ПАРОЛЬ ТЕКУЩИЙ;  
  • ПАРОЛЬ ТРЕБУЕТСЯ ДОПОЛНИТЕЛЬНО

    Этот вариант проверки переопределяет глобальную политику для
    все счета, указанные в выписке. Для каждого это не
    требовать, чтобы при изменении пароля был указан текущий
    пароль.(Текущий пароль может, но не обязательно
    дано.)

      СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ 'jeffrey' @ 'localhost' ТРЕБУЕТСЯ ПАРОЛЬ ТЕКУЩИЙ ДОПОЛНИТЕЛЬНО;  
  • ТРЕБУЕТСЯ ПАРОЛЬ ПО УМОЛЧАНИЮ

    Устанавливает все операторы, названные учетной записью так, чтобы
    применяется глобальная политика проверки пароля, так как
    указанный
    пароль_require_current
    системная переменная.

      СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ 'jeffrey' @ 'localhost' ТРЕБУЕТСЯ ПАРОЛЬ ТЕКУЩЕГО ПО УМОЛЧАНИЮ;  

Начиная с MySQL 8.0.19, СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ
разрешает эти password_option
значения для управления отслеживанием неудачных попыток входа в систему:

  • FAILED_LOGIN_ATTEMPTS

    Следует ли отслеживать попытки входа в учетную запись с указанием
    неверный пароль. N должен быть
    число от 0 до 32767. Значение 0 отключает неудачный вход
    отслеживание. Значения больше 0 указывают, сколько
    последовательные сбои пароля вызывают временную учетную запись
    блокировка (если PASSWORD_LOCK_TIME также
    ненулевое).

  • PASSWORD_LOCK_TIME { N
    | UNBOUNDED}

    Как долго блокировать учетную запись после слишком большого количества попыток подряд
    попытки входа в систему дают неверный пароль. N должно быть числом от 0 до
    32767 или НЕОГРАНИЧЕННЫЙ . Значение 0
    отключает временную блокировку учетной записи. Значения больше 0
    укажите, на какой срок блокировать учетную запись в днях. Ценность
    UNBOUNDED вызывает блокировку учетной записи
    продолжительность быть неограниченной; после блокировки учетная запись остается
    в заблокированном состоянии до разблокировки. Для получения информации о
    условия, при которых происходит разблокировка, см.
    Отслеживание неудачных попыток входа в систему и временная блокировка учетной записи.

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

  СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ 'jeffrey' @ 'localhost'
  FAILED_LOGIN_ATTEMPTS 4 PASSWORD_LOCK_TIME 2;  
СОЗДАТЬ параметры блокировки учетной записи пользователя

MySQL поддерживает блокировку и разблокировку учетной записи с помощью
БЛОКИРОВКА СЧЕТА и СЧЕТ
Опции UNLOCK
, которые определяют состояние блокировки для
счет.Для дополнительного обсуждения см.
Раздел 6.2.19, «Блокировка учетной записи».

Если указано несколько параметров блокировки учетной записи, последний
один имеет приоритет.

СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ Двоичное ведение журнала

СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ записывается в
двоичный журнал в случае успеха, но не в случае неудачи; в этом случае,
происходит откат без изменений. Заявление написано
в двоичный журнал входят все указанные пользователи.Если IF
НЕ СУЩЕСТВУЕТ пункт
, он включает даже пользователей
которые уже существуют и не были созданы.

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

  • Плагин, названный в исходном заявлении, если он был
    указано.

  • В противном случае плагин аутентификации по умолчанию.В
    в частности, если пользователь u1 уже существует
    и использует нестандартный плагин аутентификации, оператор
    записано в двоичный журнал для СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ, ЕСЛИ НЕ
    EXISTS u1
    называет аутентификацию по умолчанию
    плагин. (Если оператор, записанный в двоичный журнал, должен
    указать для пользователя плагин аутентификации не по умолчанию,
    включите его в исходное заявление.)

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

Если в исходном заявлении указывается
FAILED_LOGIN_ATTEMPTS или
PASSWORD_LOCK_TIME опция, инструкция
записанный в двоичный журнал включает параметр.

6.2.8 Добавление учетных записей, назначение привилегий и удаление учетных записей

6.2.8 Добавление учетных записей, назначение привилегий и удаление учетных записей

Для управления учетными записями MySQL используйте предназначенные для этого операторы SQL.
цель:

Заявления об управлении учетной записью заставляют сервер делать соответствующие
модификации основных таблиц грантов, которые обсуждаются
в разделе 6.2.3, «Таблицы грантов».

Примечание

Прямая модификация таблиц грантов с использованием таких операторов, как
ВСТАВИТЬ ,
ОБНОВЛЕНИЕ , или
DELETE не рекомендуется и выполняется в
на свой страх и риск. Сервер может игнорировать строки, которые становятся
искажены в результате таких модификаций.

Для любой операции, которая изменяет таблицу предоставления, сервер проверяет
имеет ли таблица ожидаемую структуру и дает ли
ошибка, если нет.Чтобы обновить таблицы до ожидаемой структуры,
выполнить процедуру обновления MySQL. Видеть
Раздел 2.11, «Обновление MySQL».

Другой вариант создания учетных записей — использовать инструмент с графическим интерфейсом.
MySQL Workbench. Также несколько сторонних программ предлагают возможности
для администрирования учетной записи MySQL. phpMyAdmin — это
одна такая программа.

В этом разделе обсуждаются следующие темы:

Для получения дополнительной информации об утверждениях, обсуждаемых здесь,
см. раздел 13.7.1, «Отчеты по управлению счетом».

Создание учетных записей и предоставление привилегий

Следующие примеры показывают, как использовать
mysql клиентская программа для создания новых учетных записей.
В этих примерах предполагается, что корень MySQL
учетная запись имеет СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ
привилегия и все привилегии, которые она предоставляет другим учетным записям.

В командной строке подключитесь к серверу как MySQL
root пользователь, указав соответствующий пароль
при запросе пароля:

  оболочка> mysql -u root -p
Введите пароль:  (введите здесь пароль root)   

После подключения к серверу вы можете добавлять новые учетные записи.В
в следующем примере используется CREATE USER
Заявления
и GRANT
для создания четырех учетных записей (где вы видите
' пароль ' ,
замените соответствующий пароль):

  СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ 'finley' @ 'localhost'
  ОПРЕДЕЛЕННЫЙ « пароль »;
ПРЕДОСТАВИТЬ ВСЕ
  НА *.*
  К 'finley' @ 'localhost'
  С ОПЦИЕЙ ГРАНТА;

СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ 'finley'@'%.example.com'
  ОПРЕДЕЛЕННЫЙ « пароль »;
ПРЕДОСТАВИТЬ ВСЕ
  НА *.*
  К 'finley'@'%.example.com'
  С ОПЦИЕЙ ГРАНТА;

СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ 'admin' @ 'localhost'
  ОПРЕДЕЛЕННЫЙ « пароль »;
ГРАНТ ПЕРЕЗАГРУЗКА, ПРОЦЕСС
  НА *.*
  TO 'admin' @ 'localhost';

СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ 'dummy' @ 'localhost';  

Учетные записи, созданные с помощью этих отчетов, имеют следующие
характеристики:

  • Две учетные записи имеют имя пользователя finley .
    Обе учетные записи суперпользователя с полными глобальными привилегиями
    Делать что-нибудь. 'finley' @ 'localhost'
    учетная запись может использоваться только при подключении с локального
    хозяин. 'finley'@'%.example.com'
    аккаунт использует подстановочный знак '%' в узле
    часть, поэтому его можно использовать для подключения с любого хоста в
    example.com домен .

    Учетная запись 'finley' @ 'localhost'
    необходимо, если есть учетная запись анонимного пользователя для
    локальный хост .Без
    'finley' @ 'localhost' аккаунт, который
    учетная запись анонимного пользователя имеет приоритет, когда
    finley подключается с локального хоста и
    finley рассматривается как анонимный пользователь.
    Причина в том, что учетная запись анонимного пользователя имеет
    более конкретное значение столбца Host , чем
    'finley' @ '%' аккаунт и, таким образом, приходит
    ранее в порядке сортировки таблицы пользователя .(Для информации о пользователя таблица
    сортировку, см. Раздел 6.2.6, «Контроль доступа, этап 1: проверка соединения».)

  • Учетная запись 'admin' @ 'localhost' может быть
    используется только администратором для подключения из
    локальный хост. Дарован глобальный
    ПЕРЕЗАГРУЗИТЬ и
    ПРОЦЕСС административный
    привилегии. Эти привилегии позволяют
    admin пользователь для выполнения
    mysqladmin перезагрузить , mysqladmin
    обновить
    и mysqladmin
    flush- xxx
    команд, как
    а также mysqladmin processlist .Нет
    предоставлены привилегии для доступа к любым базам данных. Ты
    может добавить такие привилегии, используя
    GRANT заявления.

  • У учетной записи 'dummy' @ 'localhost' нет
    пароль (который небезопасен и не рекомендуется). Этот
    учетная запись может использоваться только для подключения с локального хоста. Нет
    предоставляются привилегии. Предполагается, что вы предоставляете
    определенные привилегии для учетной записи с использованием
    GRANT заявления.

В предыдущем примере привилегии предоставляются на глобальном уровне. В
В следующем примере создается три учетных записи и предоставляется им доступ по адресу
нижние уровни; то есть к конкретным базам данных или объектам в
базы данных. У каждой учетной записи есть имя пользователя
custom , но части имени хоста различаются:

  СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ 'custom' @ 'localhost'
  ОПРЕДЕЛЕННЫЙ « пароль »;
ПРЕДОСТАВИТЬ ВСЕ
  НА банковском счете. *
  TO 'custom' @ 'localhost';

СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ 'custom' @ 'host47.example.com '
  ОПРЕДЕЛЕННЫЙ « пароль »;
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP
  НА расходы. *
  TO 'custom'@'host47.example.com';

СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ 'custom'@'%.example.com'
  ОПРЕДЕЛЕННЫЙ « пароль »;
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP
  НА customer.addresses
  TO 'custom'@'%.example.com';  

Эти три аккаунта можно использовать следующим образом:

  • В учетной записи custom @ localhost есть все
    привилегии уровня базы данных для доступа к
    банковский счет база данных.Аккаунт может быть
    используется для подключения к серверу только с локального хоста.

  • Аккаунт 'custom'@'host47.example.com'
    имеет определенные привилегии уровня базы данных для доступа к
    расходы база данных. Аккаунт может быть
    используется для подключения к серверу только с хоста
    host47.example.com .

  • 'custom' @ '%.example.com ' аккаунт имеет
    определенные привилегии на уровне таблицы для доступа к
    адресов таблица в
    база данных клиентов , с любого хоста в
    example.com домен . Аккаунт может быть
    используется для подключения к серверу со всех машин в
    домен из-за использования подстановочного знака %
    в части хоста имени учетной записи.

Проверка привилегий и свойств учетной записи

Чтобы увидеть привилегии для учетной записи, используйте
ВЫСТАВКА ГРАНТОВ :

  mysql> ПОКАЗАТЬ ГРАНТЫ ДЛЯ 'admin' @ 'localhost';
+ ------------------------------------------------- ---- +
| Гранты для admin @ localhost |
+ ------------------------------------------------- ---- +
| ГРАНТ ПЕРЕЗАГРУЗКА, ПРОЦЕСС ВКЛЮЧЕН *.* TO 'admin' @ 'localhost' |
+ ------------------------------------------------- ---- +  

Чтобы просмотреть непривилегированные свойства учетной записи, используйте
ПОКАЗАТЬ СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ :

  mysql> УСТАНОВИТЬ print_identified_with_as_hex = ON;
mysql> ПОКАЗАТЬ СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ 'admin' @ 'localhost' \ G
************************** 1. строка ******************** *******
СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ для admin @ localhost: СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ 'admin' @ 'localhost'
ИДЕНТИФИЦИРОВАНО 'caching_sha2_password'
Как 0x24412430303524301D0E17054E2241362B1419313C3E44326F294133734B30792F436E77764270373039612E32445250786D43594F45354532324B6169794F47457852796E32
НЕ ТРЕБУЕТСЯ ИСКЛЮЧИТЬ ПАРОЛЬ ПО УМОЛЧАНИЮ РАЗБЛОКИРОВАТЬ
ИСТОРИЯ ПАРОЛЕЙ ПО УМОЛЧАНИЮ
ИНТЕРВАЛ ПОВТОРНОГО ИСПОЛЬЗОВАНИЯ ПАРОЛЯ ПО УМОЛЧАНИЮ
ТРЕБУЕТСЯ ПАРОЛЬ ПО УМОЛЧАНИЮ  

Включение
print_identified_with_as_hex
системная переменная (доступна с MySQL 8.0.17) причины
SHOW CREATE USER для отображения хэша
значения, содержащие непечатаемые символы в шестнадцатеричном виде
строки, а не как обычные строковые литералы.

Отзыв привилегий учетной записи

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

Отменить глобальные привилегии:

  ОТМЕНИТЬ ВСЕ
  НА *.*
  ОТ 'finley'@'%.example.com';

ОТМЕНА ПЕРЕЗАГРУЗКИ
  НА *.*
  ОТ 'admin' @ 'localhost';  

Отменить права на уровне базы данных:

  REVOKE CREATE, DROP
  НА расходы. *
  ОТ 'custom'@'host47.example.com';  

Отменить привилегии на уровне таблицы:

  ОТМЕНА ВСТАВКИ, ОБНОВЛЕНИЯ, УДАЛЕНИЯ
  НА customer.addresses
  ОТ 'custom'@'%.example.com';  

Чтобы проверить эффект отзыва привилегии, используйте
ВЫСТАВКА ГРАНТОВ :

  mysql> ПОКАЗАТЬ ГРАНТЫ ДЛЯ 'admin' @ 'localhost';
+ --------------------------------------------- +
| Гранты для admin @ localhost |
+ --------------------------------------------- +
| ПРОЦЕСС ГРАНТА *.* TO 'admin' @ 'localhost' |
+ --------------------------------------------- +  

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

  УДАЛИТЬ ПОЛЬЗОВАТЕЛЯ 'finley' @ 'localhost';
УДАЛИТЬ ПОЛЬЗОВАТЕЛЯ 'finley'@'%.example.com';
УДАЛИТЬ ПОЛЬЗОВАТЕЛЯ 'admin' @ 'localhost';
УДАЛИТЬ ПОЛЬЗОВАТЕЛЯ 'dummy' @ 'localhost';  

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

Введение

MySQL — это приложение базы данных для Linux, входящее в популярный стек LAMP (Linux, Apache, MySQL, PHP).Установка MySQL включает варианты управления через пользователя root или определенные учетные записи пользователей.

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

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

Предварительные требования

  • Сервер Linux с установленным и запущенным MySQL или MariaDB
  • Доступ к учетным данным пользователя root в MySQL
  • Доступ к окну терминала / командной строке (Ctrl-Alt-T / Ctrl-Alt-F2)

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

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

  sudo mysql –u root –p  

2. Введите пароль root для этой учетной записи и нажмите Enter.

Приглашение должно измениться, чтобы показать, что вы находитесь в оболочке mysql> .

3. Затем создайте нового пользователя MySQL с:

  СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ «имя пользователя», ОПРЕДЕЛЕННОЕ «паролем»;  

Замените имя пользователя и пароль на имя пользователя и пароль по вашему выбору.

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

  • Если вы работаете на машине с MySQL, используйте username @ localhost для определения пользователя.
  • Если вы подключаетесь удаленно, используйте username @ ip_address и замените ip_address фактическим адресом удаленной системы, на которой размещен MySQL.

Следовательно, команда будет:

  СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ 'имя пользователя' @ 'localhost' ИДЕНТИФИЦИРОВАНО 'паролем';  

или

  СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ 'имя пользователя' @ 'ip_address' ИДЕНТИФИЦИРОВАНО 'паролем';  

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

  СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ 'имя пользователя' @ '%' ИДЕНТИФИЦИРОВАНО 'паролем';  

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

Как предоставить разрешения в MySQL

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

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

  • Все привилегии: Учетная запись пользователя имеет полный доступ к базе данных
  • Вставка: Пользователь может вставлять строки в таблицы
  • Удалить: Пользователь может удалять строки из таблиц
  • Создать: Пользователь может создавать совершенно новые таблицы и базы данных
  • Drop: Пользователь может отбрасывать (удалять) целые таблицы и базы данных
  • Select: Пользователь получает доступ к команде select для чтения информации в базах данных
  • Update : Пользователь может обновлять строки таблицы
  • Вариант предоставления: Пользователь может изменять привилегии учетной записи другого пользователя

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

  GRANT тип_разрешения ON база данных.таблица TO 'имя пользователя' @ 'localhost';  

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

  GRANT INSERT ON *. * TO 'имя пользователя' @ 'localhost';  

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

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

  GRANT INSERT * имя_базы_данных.table_name * TO 'имя пользователя' @ 'localhost';  

Управление пользователями MySQL

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

Как указать привилегии учетной записи пользователя MySQL

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

  SHOW GRANTS имя пользователя;  

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

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

.

  ПРЕДОСТАВЛЯЙТЕ ВСЕ ПРИВИЛЕГИИ *.* TO 'database_user' @ 'localhost';  

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

  ПРЕДОСТАВЛЯТЬ ВСЕ ПРИВИЛЕГИИ НА имя_базы_данных. * TO 'database_user' @ 'localhost';  

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

  ПРЕДОСТАВЛЯЙТЕ ВСЕ ПРИВИЛЕГИИ НА имя_базы_данных.имя_таблицы TO 'database_user' @ 'localhost';  

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

Чтобы отозвать привилегии у определенного пользователя, используйте команду REVOKE .Она работает аналогично команде GRANT, ее основной синтаксис:

.

  REVOKE разрешение_типа ON database.table TO 'username' @ 'localhost';  

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

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

  DROP USER 'имя пользователя' @ 'localhost';  

Заключение

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

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

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

Как мне создать пользователя MySQL и назначить права доступа?

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

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

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

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

Сначала запустите консоль MySQL. Откройте терминал (например, PuTTY или XTerm) и подключитесь к серверу с установленным MySQL. Мы используем пользователя «root» в вашей установке MySQL.Если вы предоставите пользователю пароль, используйте следующую команду:

 $ mysql -u root -p 

Затем вам будет предложено ввести пароль. После ввода вы должны увидеть приглашение MySQL. Если вы не установили пароль, сделайте это без параметра «-p», и вам не будет предложено ввести пароль.

 корень @ mysql: ~ # mysql -u root -p
Введите пароль:

Добро пожаловать в монитор MySQL. Команды заканчиваются на; или \ g.
Ваш идентификатор подключения MySQL - 98
Версия сервера: 5.5.47-0 + deb8u1 (Debian)

Авторские права (c) 2000, 2015, Oracle и / или ее дочерние компании.Все права защищены.

Oracle является зарегистрированным товарным знаком Oracle Corporation и / или ее
филиалы. Другие названия могут быть товарными знаками соответствующих
собственники.

Введите "помощь"; или '\ h' для помощи. Введите '\ c', чтобы очистить текущий оператор ввода.

mysql>
 

Создать нового пользователя сравнительно просто. Просто замените значения «пользователь» и «пароль» в следующей команде:

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

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

 СОЗДАТЬ БАЗУ ДАННЫХ 'myDB'; 

А теперь предоставьте вашему новому пользователю все права на эту базу данных. Замените значение «пользователь» своим именем пользователя:

 ПРЕДОСТАВИТЬ ВСЕ ПРИВИЛЕГИИ НА myDB. * TO 'user' @ 'localhost'; 

Краткое объяснение приведенных выше команд:

— ПРЕДОСТАВИТЬ ВСЕ ПРИВИЛЕГИИ: Назначены все доступные привилегии (права). Есть также ограниченные привилегии, подробнее об этом позже.
— НА «myDB».*: Указывает области, которым должны быть назначены права. Также возможно «*. * ‘Чтобы предоставить пользователю, например, все права или ограничение на отдельные таблицы базы данных, например «MyDB». «Мой стол» ».
— TO ‘user’ @ ’localhost’: это пользователь, который получит эти права.

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

 FLUSH PRIVILEGES; 

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

Дополнительные привилегии в MySQL

В дополнение к «ВСЕМ ПРИВИЛЕГАМ», использованным выше, вы также можете назначить другие наборы привилегий пользователю на вашем сервере MySQL. Вот, например, следующие:

  • ВСЕ ПРИВИЛЕГИИ: подстановочный знак для всех прав на выбранный объект базы данных или — с *. * — для всех баз данных.
    CREATE: позволяет пользователю создавать новые базы данных.
    DROP: позволяет пользователю удалять базы данных.
    DELETE: позволяет пользователю удалять отдельные строки в таблице.
    INSERT: позволяет пользователю создавать новые строки в таблице.
    SELECT: разрешения на чтение для базы данных или таблицы
    FIX: разрешение на обновление строки
    GRANT OPTION: позволяет пользователю устанавливать или отзывать права других пользователей

Точный синтаксис очень хорошо описан в документации MySQL.Вы найдете это здесь.

Удаление пользователя в MySQL

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

 DROP USER 'user' @ 'localhost'; 

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

Другие статьи о MySQL и MariaDB

Zurück zur Tutorial Übersicht Назад к обзору учебного курса

Как создать пользователя MySQL и предоставить привилегии: руководство для начинающих

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

Прежде чем мы перейдем к следующему разделу руководства, убедитесь, что вы установили MySQL. Если у вас нет, у нас есть отличные руководства по установке как на Ubuntu, так и на CentOS.

ПРИМЕЧАНИЕ: Мы будем использовать командную строку для доступа к нашему Linux VPS от имени пользователя root. Вы можете использовать PuTTY (Windows) или свой терминал (macOS, Linux) и войти в систему, используя данные для входа в корневую систему SSH, предоставленные вашим хостинг-провайдером.

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

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

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

Например, вы нанимаете разработчиков для обслуживания ваших баз данных, но вы не хотите предоставлять им возможность удалять или изменять какую-либо конфиденциальную информацию.

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

В этой части мы объясним, как создать учетную запись пользователя в MySQL и предоставить все привилегии вашей базе данных. В практическом смысле неразумно отдавать полный контроль пользователю без полномочий root. Тем не менее, это все еще хорошая отправная точка для изучения привилегий пользователей.

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

  1. Войдите в командную строку и введите сервер MySQL:
     MySQL 
  1. Сценарий вернет этот результат, подтверждающий, что вы обращаетесь к серверу MySQL.
     MySQL> 
  1. Затем выполните следующую команду:
     СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ 'new_user' @ 'localhost' ИДЕНТИФИЦИРОВАНО 'паролем'; 
  1. new_user — это имя, которое мы дали нашей новой учетной записи, а в разделе IDENTIFIED BY ‘password’ устанавливается пароль для этого пользователя. Вы можете заменить эти значения своими собственными в кавычках.
  2. Чтобы предоставить все привилегии базы данных для вновь созданного пользователя, выполните следующую команду:
     ПРЕДОСТАВЛЯЙТЕ ВСЕ ПРИВИЛЕГИИ НА *.* TO 'new_user' @ 'localhost'; 
  1. Чтобы изменения вступили в силу немедленно, сбросьте эти привилегии, введя команду:
     ПРИВИЛЕГИИ ПРОМЫВКИ; 

Как только это будет сделано, ваша новая учетная запись пользователя получит тот же доступ к базе данных, что и пользователь root.

Отдельное предоставление привилегий пользователю MySQL

В этой части мы объясним, как предоставлять привилегии отдельно для учетной записи пользователя в MySQL.

При указании имени базы данных и имени таблицы разделите их расширением.(точка) и без пробелов. Это даст пользователю root точный контроль над определенными данными.

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

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

  • CREATE — разрешить пользователям создавать базу данных или таблицу
  • SELECT — разрешить пользователям извлекать данные
  • INSERT — разрешить пользователям добавлять новые записи в таблицы
  • ОБНОВЛЕНИЕ — разрешить пользователям изменять существующие записи в таблицах
  • DELETE — разрешить пользователям стирать записи в таблице
  • DROP — разрешить пользователям удалять целые таблицы базы данных

ПРИМЕЧАНИЕ: Использование предыдущего типа разрешений ALL PRIVILEGES позволит получить все разрешения, перечисленные выше.

Чтобы использовать любую из этих опций, просто замените PERMISSION_TYPE соответствующим ключевым словом. Чтобы применить несколько привилегий, разделите их запятыми. Например, мы можем назначить CREATE и SELECT нашей учетной записи пользователя MySQL без полномочий root с помощью этой команды:

 GRANT CREATE, SELECT ON *. * TO 'имя_пользователя' @ 'localhost';
 

Иногда вы можете столкнуться с ситуацией, когда вам нужно отозвать предоставленные привилегии у пользователя. Вы можете сделать это, введя:

 ОТМЕНА ТИПА РАЗРЕШЕНИЯ НА имя_базы_данных.table_name FROM ‘user_name’ @ ‘localhost’;
 

Например, чтобы отозвать все права для нашего пользователя без полномочий root, мы должны использовать:

 ОТМЕНИТЬ ВСЕ ПРИВИЛЕГИИ НА *. * FROM 'имя_пользователя' @ 'localhost';
 

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

 DROP USER ‘user_name’ @ ‘localhost’;
 

ПРИМЕЧАНИЕ. Помните, что для выполнения любой из этих команд вам необходимо иметь root-доступ. Обязательно выполните FLUSH PRIVILEGES; после внесения изменений.

Отображение привилегий учетной записи для пользователя MySQL

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

 ПОКАЗАТЬ ГРАНТЫ ДЛЯ 'user_name' @ 'localhost'; 

Результат будет примерно таким:

  + ----------------------------------------------- ---------------------------- +
| Гранты для user_name @ localhost |
+ ------------------------------------------------- -------------------------- +
| ПРЕДОСТАВЛЯЕТ ИСПОЛЬЗОВАНИЕ *.* TO 'user_name' @ 'localhost' |
| ПРЕДОСТАВЛЯЙТЕ ВСЕ ПРИВИЛЕГИИ НА 'database_name'. * TO 'user_name' @ 'localhost'. |
| ОТКАЗАТЬ ВСЕ ПРИВИЛЕГИИ НА *. * FROM 'имя_пользователя' @ 'localhost';  | 
  + ----------------------------------------------- ---------------------------- +
3 ряда в комплекте (0,00 сек)  

Что такое база данных MySQL?

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

База данных

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

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

MySQL — одно из самых популярных имен, когда речь идет о системах управления базами данных.Это связано с простотой использования и поддержкой сообщества. Такие платформы, как Facebook и Twitter, в некоторой степени даже используют MySQL.

Заключение

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

В этом руководстве вы узнали о некоторых основных командах для выполнения нескольких задач в MySQL, в том числе:

  • Как создать пользователя MySQL и предоставить ему все привилегии
  • Как предоставить пользователю определенные привилегии, отозвать их и полностью удалить пользователя MySQL
  • Как узнать, какие привилегии уже есть у пользователя MySQL

Удачи, не стесняйтесь оставлять комментарии ниже, если у вас есть какие-либо вопросы.

Domantas возглавляет отделы контента и SEO, предлагая свежие идеи и нестандартные подходы. Обладая обширными знаниями в области SEO и маркетинга, он стремится распространить информацию о Hostinger во всех уголках мира. В свободное время Домантас любит оттачивать свои навыки веб-разработки и путешествовать по экзотическим местам.

MySQL добавить пользователя и предоставить пример

Часто задаваемые вопросы о «пользователях» MySQL

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

Решение: MySQL добавить пользователя и предоставить синтаксис

Следующие команды MySQL показывают пример того, что я сделал недавно, чтобы (а) создать новую базу данных MySQL, а затем (б) добавить новую учетную запись пользователя MySQL для работы с этой базой данных.Я проверил этот подход как с MAMP, так и с использованием MySQL на серверах Linux.

Шаг 1: Войдите в базу данных

Во-первых, из командной строки войдите на мой сервер базы данных MySQL с клиентом командной строки mysql :

unix>  mysql -u корень -p 
(здесь я ввожу my_root_password, чтобы пройти через приглашение mysql)
 

Шаг 2: Создайте базу данных (при необходимости)

Затем создайте новую базу данных с помощью команды MySQL create database , указав имя базы данных ( my_database ) после этой команды:

mysql>  создать базу данных my_database; 
 

Шаг 3. Создайте новую учетную запись пользователя MySQL

Затем создайте новую учетную запись пользователя MySQL, предоставив учетной записи пользователя все привилегии, необходимые для «владения» этой базой данных, с помощью команды MySQL grant .Обратите внимание, что я назначаю имя пользователя и пароль, когда добавляю новую учетную запись пользователя:

mysql>  ПРЕДОСТАВЛЯТЬ ВСЕ ПРИВИЛЕГИИ 
         НА my_database. * 
         К 'my_user' @ 'localhost' 
         ИДЕНТИФИЦИРОВАН "my_password" 
         С ОПЦИЕЙ ГРАНТА; 
 

Если вам нужно что-то, что можно скопировать и вставить, с этим примером команды grant немного проще работать:

ПРЕДОСТАВЛЯЙТЕ ВСЕ ПРИВИЛЕГИИ
НА my_database.*
К 'my_user' @ 'localhost'
ИДЕНТИФИЦИРОВАНО 'my_password'
С ОПЦИЕЙ ГРАНТА;
 

Вы можете поместить всю команду MySQL grant в одну строку; Я просто поместил его здесь в несколько строк, чтобы было легче читать. (Это кажется немного необычным, но с помощью grant вы создаете учетную запись пользователя MySQL.)

Обновление

: в разделе «Комментарии» ниже приведен дополнительный пример «добавления пользователя», в котором используется команда grant .

Примечание об этой учетной записи пользователя MySQL и «localhost»

Важно отметить, что когда я создаю этого пользователя MySQL, я даю ему доступ к этой базе данных MySQL из компьютерной системы, известной как «localhost».Это отлично работает, когда вы получаете доступ к этой базе данных с помощью этой новой учетной записи пользователя MySQL из локальной компьютерной системы, но если вы собираетесь получить доступ к этой базе данных из другой компьютерной системы, вам необходимо указать IP-адрес этой удаленной системы. здесь вместо «localhost».

Дополнительная информация

Для получения дополнительной информации о том, как добавить / создать пользователя MySQL, а также как удалить пользователя MySQL, см.

Добавить комментарий

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