Подключаемый модуль аутентификации — 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 является
одним из стандартных подключаемых модулей аутентификации, поэтому все
библиотеки клиентов должны его поддерживать.
© 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/