Spec-Zone.ru › MySQL 5.7

6.2.1 Имена пользователей и пароли учётных записей

MySQL хранит учётные записи в таблице user системной базы данных mysql. Учётная запись определяется именем пользователя и хостом или хостами клиентов, с которых пользователь может подключиться к серверу. Сведения об представлении учётной записи в таблице user см. в разделе 6.2.3, «Таблицы разрешений».

Учётная запись также может иметь аутентификационные данные, такие как пароль. Управление данными аутентификации выполняется плагином аутентификации учётной записи. MySQL поддерживает несколько плагинов аутентификации. Некоторые из них используют встроенные методы аутентификации, другие позволяют использовать методы аутентификации на основе внешних источников. См. раздел 6.2.13, «Подключаемая аутентификация».

Существуют некоторые различия в способе использования имён пользователей и паролей MySQL и вашей операционной системы:

  • Имена пользователей, используемые MySQL для целей аутентификации, никак не связаны с именами пользователей (имя входа) в Windows или Unix. В Unix большинство клиентов MySQL по умолчанию пытаются войти в систему, используя текущее имя пользователя Unix в качестве имени пользователя MySQL, но это делается только для удобства. По умолчанию можно легко переопределить, поскольку программы-клиенты позволяют указать любое имя пользователя с помощью параметра -u или --user. Это означает, что любой может попытаться подключиться к серверу с любым именем пользователя, поэтому вы не можете обеспечить безопасность базы данных никаким образом, если у всех учётных записей MySQL нет паролей. Любой, кто укажет имя пользователя для учётной записи, у которой нет пароля, сможет успешно подключиться к серверу.

  • Имена пользователей MySQL могут содержать до 32 символов. Имена пользователей операционной системы могут иметь другой максимальный размер.

    Предупреждение

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

    Вы никогда не должны изменять структуру таблиц в базе данных mysql каким-либо образом, кроме описанного в разделе 2.10, «Модернизация MySQL». Попытка переопределения системных таблиц MySQL каким-либо другим способом приводит к неопределённому и неподдерживаемому поведению. Сервер может игнорировать строки, которые становятся некорректными в результате таких изменений.

  • Для проверки подлинности подключений клиентов для учётных записей, использующих встроенные методы аутентификации, сервер использует пароли, хранящиеся в таблице user. Эти пароли отличаются от паролей для входа в вашу операционную систему. Нет необходимой связи между «внешним» паролем, используемым для входа в машину Windows или Unix, и паролем, используемым для доступа к серверу MySQL на этой машине.

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

  • Пароли, хранящиеся в таблице user, шифруются с использованием алгоритмов, специфичных для плагина. Сведения о собственном механизме хэширования паролей MySQL см. в разделе 6.1.2.4, «Хэширование паролей в MySQL».

  • Если имя пользователя и пароль содержат только символы ASCII, подключение к серверу возможно независимо от настроек набора символов. Для обеспечения подключений, когда имя пользователя или пароль содержат не-ASCII-символы, приложения-клиенты должны вызывать функцию API C с параметром MYSQL_SET_CHARSET_NAME и соответствующим именем набора символов в качестве аргументов. Это приводит к аутентификации с использованием указанного набора символов. В противном случае аутентификация не удаётся, если набор символов по умолчанию сервера не совпадает с кодировкой в параметрах аутентификации.

    Стандартные программы-клиенты MySQL поддерживают параметр --default-character-set, который вызывает вызов как описано выше. Кроме того, поддерживается автоматическое определение набора символов, как описано в разделе 10.4, «Наборы символов и наборы правил сопоставления подключений». Для программ, использующих соединитель, не основанный на API C, соединитель может предоставить эквивалент для использования вместо него. Обратитесь к документации соединителя.

    Представленные замечания не относятся к ucs2, utf16 и utf32, которые не разрешены как наборы символов клиентов.

Процесс установки MySQL заполняет таблицы разрешений начальной учётной записью root, как описано в разделе 2.9.4, «Обеспечение безопасности начальной учётной записи MySQL», в котором также описывается, как присвоить ей пароль. После этого вы обычно настраиваете, изменяете и удаляете учётные записи MySQL с помощью таких команд, как CREATE USER, DROP USER, GRANT и REVOKE. См. раздел 6.2.7, «Добавление учётных записей, назначение привилегий и удаление учётных записей» и раздел 13.7.1, «Операторы управления учётными записями».

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

$> mysql --user=finley --password db_name

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

$> mysql -u finley -p db_name

Если вы опустите значение пароля после параметра --password или -p в командной строке (как показано выше), клиент запросит его. В качестве альтернативы, пароль можно указать в командной строке:

$> mysql --user=finley --password=password db_name
$> mysql -u finley -ppassword db_name

Если вы используете параметр -p, не должно быть пробела между -p и последующим значением пароля.

Указание пароля в командной строке следует рассматривать как небезопасный метод. См. раздел 6.1.2.1, «Руководство для конечных пользователей по безопасности паролей». Чтобы избежать указания пароля в командной строке, используйте файл параметров или файл пути входа. См. раздел 4.2.2.2, «Использование файлов параметров» и раздел 4.6.6, «mysql_config_editor — утилита конфигурации MySQL».

Дополнительную информацию об указании имён пользователей, паролей и других параметров подключения см. в разделе 4.2.4, «Подключение к серверу MySQL с помощью параметров командной строки».

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-5.7-en/user-names.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API