Spec-Zone.ru › MariaDB

Подключаемый модуль аутентификации — mysql_old_password

Подключаемый модуль аутентификации mysql_old_password является по умолчанию для учетных записей, созданных без явного указания подключаемого модуля аутентификации и когда установлено значение old_passwords=1. Он использует алгоритм хэширования паролей предыдущих версий MySQL 4.1, который также используется функцией OLD_PASSWORD() и функцией PASSWORD(), когда установлено значение old_passwords=1.

Использование подключаемого модуля аутентификации mysql_old_password для новых установок не рекомендуется. Алгоритм хэширования паролей больше не является достаточно безопасным, и подключаемый модуль в основном предоставляется для обратной совместимости. Подключаемый модуль аутентификации ed25519 является более современным подключаемым модулем аутентификации, обеспечивающим простую аутентификацию по паролю.

Установка подключаемого модуля

Подключаемый модуль аутентификации mysql_old_password статически связан с сервером, поэтому установка не требуется.

Создание пользователей

Самый простой способ создать учетную запись пользователя с подключаемым модулем аутентификации mysql_old_password — убедиться, что установлено значение old_passwords=1, и затем создать учетную запись пользователя через CREATE USER, не указывающую подключаемый модуль аутентификации, но указывающую пароль через предложение IDENTIFIED BY. Например:

SET old_passwords=1;
CREATE USER username@hostname IDENTIFIED BY 'mariadb';

Если у SQL_MODE не установлено значение NO_AUTO_CREATE_USER, то вы также можете создать пользователя через GRANT. Например:

SET old_passwords=1;
GRANT SELECT ON db.* TO username@hostname IDENTIFIED BY 'mariadb';

Вы также можете создать учетную запись пользователя, предоставив хэш пароля через предложение IDENTIFIED BY PASSWORD, и MariaDB проверит, является ли хэш пароля совместимым с mysql_old_password. Например:

SET old_passwords=1;
Query OK, 0 rows affected (0.000 sec)

SELECT PASSWORD('mariadb');
+---------------------+
| PASSWORD('mariadb') |
+---------------------+
| 021bec665bf663f1    |
+---------------------+
1 row in set (0.000 sec)

CREATE USER username@hostname IDENTIFIED BY PASSWORD '021bec665bf663f1';
Query OK, 0 rows affected (0.000 sec)

Подобно всем другим подключаемым модулям аутентификации, вы также можете указать имя подключаемого модуля в предложении IDENTIFIED VIA, предоставляя хэш пароля как предложение USING. Например:

CREATE USER username@hostname IDENTIFIED VIA mysql_old_password USING '021bec665bf663f1';
Query OK, 0 rows affected (0.000 sec)

Изменение паролей пользователей

Вы можете изменить пароль учетной записи пользователя с помощью команды SET PASSWORD, предоставив текстовый пароль в качестве аргумента функции PASSWORD(). Например:

SET PASSWORD =  PASSWORD('new_secret')

Вы также можете изменить пароль учетной записи пользователя с помощью команды ALTER USER. Вам необходимо убедиться, что установлено значение old_passwords=1, а затем указать пароль через предложение IDENTIFIED BY. Например:

SET old_passwords=1;
ALTER USER username@hostname IDENTIFIED BY 'new_secret';

Подключаемые модули аутентификации клиентов

Для клиентов, использующих библиотеки libmysqlclient или MariaDB Connector/C, MariaDB предоставляет один подключаемый модуль аутентификации клиента, совместимый с подключаемым модулем аутентификации mysql_old_password:

  • mysql_old_password

При подключении клиента или утилиты к серверу как учетной записи пользователя, аутентифицирующейся с помощью подключаемого модуля аутентификации mysql_old_password, вам может потребоваться указать клиенту, где найти соответствующий подключаемый модуль аутентификации клиента, указав опцию --plugin-dir. Например:

mysql --plugin-dir=/usr/local/mysql/lib64/mysql/plugin --user=alice

Однако подключаемый модуль аутентификации клиента mysql_old_password обычно статически связан с клиентскими библиотеками, такими как libmysqlclient или MariaDB Connector/C, поэтому это обычно не требуется.

mysql_old_password

Подключаемый модуль аутентификации клиента mysql_old_password хэширует пароль перед отправкой его на сервер.

Поддержка в библиотеках клиентов

Подключаемый модуль аутентификации mysql_old_password является одним из стандартных подключаемых модулей аутентификации, поэтому все библиотеки клиентов должны его поддерживать.

Контент, воспроизведенный на этом сайте, является собственностью соответствующих владельцев, и этот контент не проверяется заранее MariaDB. Мнения, информация и мнения, выраженные в этом контенте, не обязательно представляют взгляды MariaDB или любой другой стороны.

© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/authentication-plugin-mysql_old_password/

Spec-Zone.ru

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