Spec-Zone .ru
спецификации, руководства, описания, API
|
CREATE USERuser_specification
[,user_specification
] ...user_specification
:user
[ IDENTIFIED BY [PASSWORD] 'password
' | IDENTIFIED WITHauth_plugin
[AS 'auth_string
'] ]
CREATE
USER
оператор создает новые учетные записи MySQL. Чтобы использовать это, у Вас должна быть
глобальная переменная CREATE
USER
полномочие или INSERT
полномочие для mysql
база данных. Для
каждой учетной записи, CREATE USER
создает новую строку в mysql.user
таблица и не присваивает учетную запись никакие
полномочия. Ошибка происходит, если учетная запись уже существует.
Для CREATE USER
операторы, которые не определяют IDENTIFIED
WITH
пункт, сервер связывает учетную запись с
плагином аутентификации значения по умолчанию. С MySQL 5.6.6 это - плагин, названный auth_plugin
--default-authentication-plugin
опция при запуске сервера, или mysql_native_password
если та опция не используется. Прежде 5.6.6, плагин
значения по умолчанию mysql_native_password
. Для получения информации о плагинах
аутентификации см. Раздел 6.3.7, "Сменная
Аутентификация".
Каждое имя учетной записи использует формат, описанный в Разделе 6.2.3, "Определение Имен учетной записи". Например:
CREATE USER 'jeffrey'@'localhost' IDENTIFIED BY 'mypass';
Если Вы определяете только часть имени пользователя имени учетной записи, часть имени хоста '%'
используется.
Пользовательская спецификация может указать, как пользователь должен аутентифицировать, соединяясь с сервером:
Чтобы позволить пользователю соединиться без пароля (который небезопасен), включайте нет IDENTIFIED
BY
пункт:
CREATE USER 'jeffrey'@'localhost';
В этом случае учетная запись использует плагин аутентификации значения по умолчанию, и клиенты не должны обеспечить пароль.
Чтобы присвоить пароль, использовать IDENTIFIED BY
с
литеральным значением незашифрованного пароля:
CREATE USER 'jeffrey'@'localhost' IDENTIFIED BY 'mypass';
Учетная запись использует плагин аутентификации значения по умолчанию, и клиенты должны соответствовать данный пароль.
Избегать определять незашифрованный пароль, если Вы знаете его значение хэш-функции
(значение это PASSWORD()
возвратился бы для пароля), определите значение
хэш-функции, которому предшествует ключевое слово PASSWORD
:
CREATE USER 'jeffrey'@'localhost'IDENTIFIED BY PASSWORD '*90E462C37378CED12064BB3388827D2BA3A9B689';
Учетная запись использует плагин аутентификации значения по умолчанию, и должен быть в формате, требуемом тем плагином. Клиенты должны соответствовать данный пароль.
Чтобы аутентифицировать учетную запись, используя определенный плагин
аутентификации, использовать IDENTIFIED WITH
, где auth_plugin
сменное имя. Это может быть неупомянутое имя
или заключенный в кавычки строковый литерал. '
дополнительный заключенный в кавычки строковый литерал, чтобы передать к плагину. Плагин интерпретирует
значение строки, таким образом, ее формат является определенным плагином. Консультируйтесь с
документацией для данного плагина для информации о строковых значениях аутентификации, которые это
принимает. auth_string
'
CREATE USER 'jeffrey'@'localhost'IDENTIFIED WITH my_auth_plugin;
Для соединений, которые используют эту учетную запись, сервер вызывает именованный плагин, и клиенты должны обеспечить учетные данные как требуется для метода аутентификации, который реализует плагин. Если сервер не может найти плагин, или во время создания учетной записи или во время соединения, ошибка происходит.
IDENTIFIED BY
и IDENTIFIED WITH
пункты являются
взаимоисключающими, таким образом, самое большее один из них может быть определен для данного пользователя.
Для дополнительной информации об установке паролей см. Раздел 6.3.5, "Присваивая Пароли Учетной записи".
CREATE USER
может быть записан в журналах сервера или в файле истории такой
как ~/.mysql_history
, что означает, что пароли в виде открытого текста могут
быть считаны любым имеющим доступ для чтения к той информации. См. Раздел
6.1.2, "Сохраняя Пароли, Безопасные".
Некоторые выпуски MySQL представляют изменения структуре таблиц предоставления, чтобы добавить новые полномочия или функции. Всякий раз, когда Вы обновляете к новой версии MySQL, следует обновить свои таблицы предоставления, чтобы удостовериться, что у них есть текущая структура так, чтобы можно было использовать в своих интересах любые новые возможности. См. Раздел 4.4.7, "mysql_upgrade — Таблицы MySQL Check и Upgrade" .