4.3.2 Имена пользователей MySQL и пароли
Между MySQL и Unix или Windows существует несколько различий в
использовании имен пользователей и паролей:
-
Имена пользователей, которые применяются в MySQL для авторизации, не
имеют ничего общего с именами пользователей Unix (аккаунты Unix) или
именами пользователей Windows. Большинство клиентов MySQL по умолчанию
пытаются войти в систему, используя текущее имя пользователя Unix в
качестве имени пользователя MySQL, но это сделано только для удобства.
Программы клиентов позволяют указывать различные имена при помощи
параметров
-u
или --user
. Это означает, что невозможно обеспечить
безопасность базы данных, если не все имена пользователей MySQL
снабжены паролями: ведь можно попытаться подсоединиться к серверу,
используя любое имя, а если воспользоваться именем, которому не
назначен пароль, то удастся войти в систему.
-
Имена пользователей MySQL могут содержать до 16 символов. Имена
пользователей Unix обычно ограничены 8 символами.
-
Пароли MySQL не имеют никакого отношения к паролям Unix. Не существует
связи между паролем, который используется для входа в Unix, и паролем,
необходимым для доступа к базе данных.
-
MySQL шифрует пароли при помощи своего алгоритма, который отличается
от алгоритма Unix, используемого во время входа в систему. Описание
функций
PASSWORD()
и ENCRYPT()
можно найти в разделе See section 6.3.6.2 Разные функции. Обратите
внимание: даже если ваш пароль хранится в 'зашифрованном виде', то
знания этого 'зашифрованного' пароля будет достаточно, чтобы
подсоединиться к серверу MySQL!
Пользователи MySQL и их привилегии обычно создаются при помощи команды
GRANT
. See section 4.3.1 Синтаксис команд GRANT
и REVOKE
.
Если подсоединение к серверу MySQL осуществляется с клиента командной
строки, необходимо указать пароль при помощи параметра
--password=your-password
. See section 4.2.8 Соединение с сервером MySQL.
mysql --user=monty --password=guess database_name
Если необходимо, чтобы клиент запрашивал пароль, то следует указать
--password
без каких-либо аргументов
mysql --user=monty --password database_name
или сокращенный вариант этого параметра:
mysql -u monty -p database_name
Обратите внимание на то, что в последнем примере database_name
не является
паролем.
Если необходимо указать пароль при помощи параметра -p
, то следует
поступить следующим образом:
mysql -u monty -pguess database_name
В некоторых системах вызов библиотеки, который MySQL использует для
запроса пароля, автоматически обрезает пароль до 8 символов. В самом MySQL
не существует никаких ограничений на длину пароля.