Spec-Zone .ru
спецификации, руководства, описания, API

6.3.5. Присвоение Паролей Учетной записи

Необходимые учетные данные для клиентов, которые соединяются с сервером MySQL, могут включать пароль. Этот раздел описывает, как присвоить пароли для учетных записей MySQL. В MySQL 5.7 для клиентов также возможно аутентифицировать плагины использования. Для получения информации см. Раздел 6.3.7, "Сменная Аутентификация".

Присваивать пароль, когда Вы создаете новую учетную запись с CREATE USER, включайте IDENTIFIED BY пункт:

mysql> CREATE USER
        'jeffrey'@'localhost'    -> IDENTIFIED BY
        'mypass';

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

mysql> SET PASSWORD
        FOR    -> 'jeffrey'@'localhost' = PASSWORD('mypass');

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

mysql> SET PASSWORD =
        PASSWORD('mypass');

old_passwords системное значение переменной определяет хеширующий метод, используемый PASSWORD(). Если Вы определяете пароль, используя ту функцию и SET PASSWORD отклоняет пароль, как не являющийся в корректном формате, может быть необходимо установить old_passwords изменить хеширующий метод. Для описаний разрешенных значений см. Раздел 5.1.4, "Системные Переменные Сервера".

В MySQL 5.7, включая read_only системная переменная предотвращает использование SET PASSWORD оператор любым пользователем, не имеющим SUPER полномочие.

Можно также использовать a GRANT USAGE оператор на глобальном уровне (ON *.*) присваивать пароль учетной записи, не влияя на полномочия текущего счета:

mysql> GRANT USAGE ON *.* TO
        'jeffrey'@'localhost'    -> IDENTIFIED BY
        'mypass';

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

shell> mysqladmin -u user_name
        -h host_name password "newpwd"

Учетная запись, для которой это наборы команд пароль является тем с a user строка таблицы, которая соответствует user_name в User столбец и хост клиента, от которого Вы соединяетесь в Host столбец.

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

Отметить

PASSWORD() шифрование отличается от шифрования пароля Unix. См. Раздел 6.3.1, "Имена пользователей и Пароли".

Предпочтительно присвоить использование паролей SET PASSWORD, GRANT, или mysqladmin, но также возможно изменить user представьте в виде таблицы непосредственно. В этом случае следует также использовать FLUSH PRIVILEGES заставить сервер перечитывать таблицы предоставления. Иначе, изменение остается незамеченным сервером, пока Вы не перезапускаете это.