3

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

=====

У меня есть база данных mysql версии 5.1.73.

Согласно документации mysql, в более новых версиях mysql создание пользователя с использованием предварительно хешированного пароля

CREATE USER 'ans'@'localhost'
    IDENTIFIED BY PASSWORD 'hash_string'

устарела и будет удалена в будущем выпуске MySQL.

Тем не менее, я не могу понять, что (если что-нибудь) является новым способом сделать это.

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

update mysql.user
    set password = '*E8D46CE25265E545D225A8A6F1BAF642FEBEE5CB'
    where user = 'ans';

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

mysql> create user 'ans'@'localhost' identified by 'foo';
mysql> select user,host,password from mysql.user;
+------+-----------+-------------------------------------------+
| user | host      | password                                  |
+------+-----------+-------------------------------------------+
| ans  | localhost | *F3A2A51A9B0F2BE2468926B4132313728C250DBF |
+------+-----------+-------------------------------------------+
mysql> update mysql.user set password = password('bar') where user = 'ans';
Query OK, 1 row affected (0.00 sec)
mysql> select user,host,password from mysql.user;
+------+-----------+-------------------------------------------+
| user | host      | password                                  |
+------+-----------+-------------------------------------------+
| ans  | localhost | *E8D46CE25265E545D225A8A6F1BAF642FEBEE5CB |
+------+-----------+-------------------------------------------+
mysql> quit
$ mysql -uans -pbar
ERROR 1045 (28000): Access denied for user 'ans'@'localhost' (using password: YES)
$ mysql -uans -pfoo
Welcome to the MySQL monitor.  Commands end with ; or \g.

1 ответ1

0

Когда вы взламываете пароль в mysql.user , вы должны запустить

mysql> FLUSH PRIVILEGES;

Согласно документации MySQL на FLUSH

ЛЬГОТЫ

Перезагрузка привилегий из таблиц предоставления в базе данных mysql.

Сервер кэширует информацию в памяти в результате выполнения операторов GRANT, CREATE USER, CREATE SERVER и INSTALL PLUGIN. Эта память не освобождается соответствующими операторами REVOKE, DROP USER, DROP SERVER и UNINSTALL PLUGIN, поэтому для сервера, который выполняет много экземпляров операторов, вызывающих кэширование, будет увеличение использования памяти. Эта кэшированная память может быть освобождена с помощью FLUSH PRIVILEGES.

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .