ПАРОЛЬ
Синтаксис
PASSWORD(str)
Описание
Функция PASSWORD() используется для хеширования паролей для использования в аутентификации сервером MariaDB. Она не предназначена для использования в других приложениях.
Вычисляет и возвращает хешированную строку пароля из простого пароля str. Возвращает пустую строку (>= MariaDB 10.0.4) если аргумент был NULL.
Значение возврата — это строка без бинарного представления в наборе символов и сортировке подключения, определяемых значениями системных переменных набора символов и character_set_connection и collation_connection.
Это функция, которая используется для хеширования паролей MariaDB для хранения в столбце Password таблицы пользователей (см. разрешения), обычно используется с оператором SET PASSWORD. Она не предназначена для использования в других приложениях.
До MariaDB 10.3, значение возврата имеет длину 41 байт, и первый символ всегда «*». Начиная с MariaDB 10.4, функция учитывает плагин аутентификации, где это применимо (заявление CREATE USER или SET PASSWORD). Например, при использовании совместно с пользователем, авторизованным с помощью плагина ed25519, оператор создаст более длинный хеш:
CREATE USER edtest@localhost IDENTIFIED VIA ed25519 USING PASSWORD('secret');
CREATE USER edtest2@localhost IDENTIFIED BY 'secret';
SELECT CONCAT(user, '@', host, ' => ', JSON_DETAILED(priv)) FROM mysql.global_priv
WHERE user LIKE 'edtest%'\G
*************************** 1. row ***************************
CONCAT(user, '@', host, ' => ', JSON_DETAILED(priv)): edtest@localhost => {
...
"plugin": "ed25519",
"authentication_string": "ZIgUREUg5PVgQ6LskhXmO+eZLS0nC8be6HPjYWR4YJY",
...
}
*************************** 2. row ***************************
CONCAT(user, '@', host, ' => ', JSON_DETAILED(priv)): edtest2@localhost => {
...
"plugin": "mysql_native_password",
"authentication_string": "*14E65567ABDB5135D0CFD9A70B3032C179A49EE7",
...
}
Поведение этой функции зависит от значения системной переменной old_passwords. Если она установлена в значение 1 (0 по умолчанию), MariaDB по умолчанию использует плагин аутентификации mysql_old_password для вновь созданных пользователей и паролей.
Примеры
SELECT PASSWORD('notagoodpwd');
+-------------------------------------------+
| PASSWORD('notagoodpwd') |
+-------------------------------------------+
| *3A70EE9FC6594F88CE9E959CD51C5A1C002DC937 |
+-------------------------------------------+
SET PASSWORD FOR 'bob'@'%.loc.gov' = PASSWORD('newpass');
См. также
- Плагины проверки паролей — позволяет задать основные критерии для паролей
- OLD_PASSWORD() — функция пароля до MySQL 4.1
© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/password/