Spec-Zone .ru
спецификации, руководства, описания, API
|
validate_password
плагин (доступный с MySQL 5.6.6) может использоваться, чтобы
протестировать пароли и улучшить безопасность. Этот плагин реализует две возможности:
В операторах, которые присваивают пароль, предоставленный как значение открытого
текста, значение проверяется по текущей политике паролей и отклоняется, если это слабо (оператор
возвращается ER_NOT_VALID_PASSWORD
ошибка). Это влияет CREATE USER
, GRANT
,
и SET PASSWORD
операторы. Пароли, данные как параметры PASSWORD()
и OLD_PASSWORD()
функции проверяются также.
Сила потенциальных паролей может быть оценена, используя VALIDATE_PASSWORD_STRENGTH()
Функция SQL, которая берет параметр пароля и
возвращает целое число от 0 (слабый) к 100 (strong).
Например, пароль в виде открытого текста в следующем операторе проверяется. Под политикой паролей значения по умолчанию, которая требует, чтобы пароли были по крайней мере 8 символами долго, пароль слаб, и оператор производит ошибку:
mysql> SET PASSWORD =
PASSWORD('abc');
ERROR 1819 (HY000): Your password does not satisfy the current policyrequirements
Пароли, определенные, поскольку уже, хешированные значения не проверяются, потому что исходное значение пароля не доступно:
mysql> SET PASSWORD =
'*0D3CED9BEC10A777AEC23CCC353A8C08A633045E';
Query OK, 0 rows affected (0.01 sec)
Параметры, которые управляют проверкой пароля, доступны как значения системных переменных, имеющих имена формы
validate_password_
. Эти переменные
могут быть изменены, чтобы сконфигурировать проверку пароля; см. Раздел
6.1.2.6.2, "Опции Плагина Проверки допустимости пароля и Переменные". xxx
Три уровня проверки пароля LOW
, MEDIUM
, и STRONG
. Значение по умолчанию MEDIUM
; чтобы изменить
это, измените значение validate_password_policy
. Политики реализуют все более и более строгие тесты
пароля. Следующие описания относятся к значениям параметра значения по умолчанию; они могут быть изменены,
заменяя соответствующие системные.
LOW
политика тестирует длину пароля только. Пароли
должны быть по крайней мере 8 символами долго.
MEDIUM
политика добавляет условия, что пароли должны
содержать по крайней мере 1 цифру, 1 символ нижнего регистра и символ верхнего регистра, и 1 специальный
(неалфавитно-цифровой) символ.
STRONG
политика добавляет условие, что подстроки пароля
длины 4 или дольше не должны соответствовать слова в файле словаря, если Вы были определены.
Если validate_password
плагин не устанавливается, validate_password_
системные переменные не доступны, пароли в операторах не
проверяются, и xxx
VALIDATE_PASSWORD_STRENGTH()
всегда возвраты 0. Например, учетные записи могут быть присвоенными паролями короче чем 8 символов.
Плагин проверки допустимости пароля называют validate_password
. Чтобы быть
применимым сервером, сменный объектный файл библиотеки должен быть расположен в каталоге плагина MySQL
(каталог, названный plugin_dir
системная переменная). В случае необходимости установите
значение plugin_dir
в сервере запускаются, чтобы сказать серверу расположение сменного каталога.
Чтобы загрузить плагин при запуске сервера, используйте --plugin-load
опция, чтобы назвать объектный файл, который содержит плагин. С
этим загружающим плагин методом опция должна быть дана каждый раз, когда сервер запускается. Например,
вставьте эти строки Ваш my.cnf
файл:
[mysqld]plugin-load=validate_password.so
Если у объектных файлов есть суффикс, отличающийся от .so
на Вашей системе
замените корректным суффиксом (например, .dll
на Windows).
Альтернативно, чтобы зарегистрировать плагин во времени выполнения, используйте этот оператор (изменяющий расширение по мере необходимости):
mysql> INSTALL PLUGIN validate_password SONAME
'validate_password.so';
INSTALL PLUGIN
загружает плагин, и также регистрирует это в mysql.plugins
таблица, чтобы заставить плагин, который будет загружаться для
каждого последующего нормального запуска сервера.
Если плагин был ранее зарегистрирован в INSTALL
PLUGIN
или загружается --plugin-load
, можно использовать --validate-password
опция в сервере запускается, чтобы управлять сменной
активацией. Например, чтобы загрузить плагин и препятствовать тому, чтобы он был удален во времени
выполнения, используйте эти опции:
[mysqld]plugin-load=validate_password.sovalidate-password=FORCE_PLUS_PERMANENT
Если это требуется, чтобы препятствовать тому, чтобы сервер работал без плагина проверки допустимости
пароля, использовать --validate-password
со значением FORCE
или
FORCE_PLUS_PERMANENT
вынудить запуск сервера перестать работать, если плагин не
инициализирует успешно.
Для получения общей информации об установке плагинов, см. Раздел 5.1.8,
"Плагины Сервера". Чтобы проверить сменную установку, исследуйте INFORMATION_SCHEMA.PLUGINS
таблица или использование SHOW PLUGINS
оператор. См. Раздел
5.1.8.2, "Получая информацию о Плагине Сервера".
Управлять активацией validate_password
плагин, используйте эту опцию:
Представленный | 5.6.6 | ||
Формат командной строки | --validate-password[=value] |
||
Формат файла опции | validate-password |
||
Разрешенные Значения | |||
Ввести | enumeration |
||
Значение по умолчанию | ON |
||
Допустимые Значения | ON |
||
OFF |
|||
FORCE |
|||
FORCE_PLUS_PERMANENT |
Эта опция управляет, как сервер загружается validate_password
плагин при запуске. Значение должно быть одним из доступных для загружающих плагин опций, как
описано в Разделе 5.1.8.1, "Устанавливая
и Удаляя Плагины". Например, --validate-password=FORCE_PLUS_PERMANENT
говорит серверу
загружать плагин и препятствовать тому, чтобы это было удалено, в то время как сервер работает.
Эта опция доступна только если validate_password
плагин был ранее
зарегистрирован в INSTALL
PLUGIN
или загружается --plugin-load
. См. Раздел
6.1.2.6.1, "Установка Плагина Проверки допустимости Пароля".
Если validate_password
плагин устанавливается, он представляет несколько
системных переменных, которые указывают на параметры, которые управляют проверкой пароля:
mysql> SHOW VARIABLES LIKE
'validate_password%';
+--------------------------------------+--------+| Variable_name | Value |+--------------------------------------+--------+| validate_password_dictionary_file | || validate_password_length | 8 || validate_password_mixed_case_count | 1 || validate_password_number_count | 1 || validate_password_policy | MEDIUM || validate_password_special_char_count | 1 |+--------------------------------------+--------+
Чтобы измениться, как пароли проверяются, можно установить любую из этих переменных при запуске сервера, и большинство из них во времени выполнения. Следующий список описывает значение каждой переменной.
validate_password_dictionary_file
Представленный | 5.6.6 | ||
Системное Имя переменной | validate_password_dictionary_file
|
||
Переменный Контекст | Глобальная переменная | ||
Динамическая Переменная | Нет | ||
Разрешенные Значения | |||
Ввести | file name |
Путь файла словаря, используемого validate_password
плагин для
того, чтобы проверить пароли. Эта переменная недоступна, если тот плагин не устанавливается.
По умолчанию у этой переменной есть пустое значение, и проверки словаря не выполняются. Чтобы
включить проверкам словаря, следует установить эту переменную в непустое значение. Если файл
называют как относительный путь, он интерпретируется относительно каталога серверных данных. Его
содержание должно быть нижним регистром, одним словом на строку. Содержание обрабатывается как
наличие набора символов utf8
. Максимальный разрешенный размер файла
составляет 1 МБ.
Для файла словаря, который будет использоваться во время проверки пароля, политика паролей
должна быть установлена в 2 (STRONG
); см. описание validate_password_policy
системная переменная. Принятие этого
является истиной, каждой подстрокой пароля длины 4, до 100 по сравнению со словами в файле
словаря. Любое соответствие заставляет пароль быть отклоненным. Сравнения не являются
чувствительными к регистру.
Для VALIDATE_PASSWORD_STRENGTH()
пароль проверяется по всем
политикам, включая STRONG
, таким образом, оценка силы включает
проверку словаря независимо от validate_password_policy
значение.
Изменения к файлу словаря, в то время как сервер работает, требуют, чтобы перезапуск для сервера распознал изменения.
Представленный | 5.6.6 | ||
Системное Имя переменной | validate_password_length
|
||
Переменный Контекст | Глобальная переменная | ||
Динамическая Переменная | Да | ||
Разрешенные Значения | |||
Ввести | numeric |
||
Значение по умолчанию | 8 |
||
Минимальное Значение | 0 |
Минимальное число символов, что пароли, проверенные validate_password
плагин должен иметь. Эта переменная недоступна,
если тот плагин не устанавливается.
validate_password_length
минимальное значение является функцией нескольких других связанных системных переменных. С MySQL
5.6.10 сервер не будет устанавливать значение меньше чем значение этого выражения:
validate_password_number_count+ validate_password_special_char_count+ (2 * validate_password_mixed_case_count)
Если validate_password
плагин корректирует значение validate_password_length
из-за предыдущего ограничения, это пишет
сообщение в журнал ошибок.
validate_password_mixed_case_count
Представленный | 5.6.6 | ||
Системное Имя переменной | validate_password_mixed_case_count
|
||
Переменный Контекст | Глобальная переменная | ||
Динамическая Переменная | Да | ||
Разрешенные Значения | |||
Ввести | numeric |
||
Значение по умолчанию | 1 |
||
Минимальное Значение | 0 |
Минимальное число символов нижнего регистра и символов верхнего регистра, что пароли,
проверенные validate_password
плагин должен иметь, если политика
паролей MEDIUM
или более сильный. Эта переменная недоступна, если
тот плагин не устанавливается.
validate_password_number_count
Представленный | 5.6.6 | ||
Системное Имя переменной | validate_password_number_count
|
||
Переменный Контекст | Глобальная переменная | ||
Динамическая Переменная | Да | ||
Разрешенные Значения | |||
Ввести | numeric |
||
Значение по умолчанию | 1 |
||
Минимальное Значение | 0 |
Минимальное число числовых (цифра) символы, что пароли, проверенные validate_password
плагин должен иметь, если политика паролей MEDIUM
или более
сильный. Эта переменная недоступна, если тот плагин не устанавливается.
Представленный | 5.6.6 | ||
Системное Имя переменной | validate_password_policy
|
||
Переменный Контекст | Глобальная переменная | ||
Динамическая Переменная | Да | ||
Разрешенные Значения | |||
Ввести | enumeration |
||
Значение по умолчанию | 1 |
||
Допустимые Значения | 0 |
||
1 |
|||
2 |
Политика паролей, осуществленная validate_password
плагин. Эта
переменная недоступна, если тот плагин не устанавливается.
validate_password_policy
значение может быть определено, используя числовые значения 0, 1, 2, или соответствующие
символьные значения LOW
, MEDIUM
, STRONG
. Следующая таблица описывает тесты, выполняемые для каждой
политики. Для теста длины необходимая длина является значением validate_password_length
системная переменная. Точно так же
необходимые значения для других тестов даются другим validate_password_
переменные.xxx
Политика | Выполняемые тесты |
---|---|
0 или LOW |
Длина |
1 или MEDIUM
|
Длина; числовой, нижний регистр/верхний регистр, и специальные символы |
2 или STRONG
|
Длина; числовой, нижний регистр/верхний регистр, и специальные символы; dictionaryfile |
Перед MySQL 5.6.10, validate_password_policy
был
назван validate_password_policy_number
.
validate_password_special_char_count
Представленный | 5.6.6 | ||
Системное Имя переменной | validate_password_special_char_count
|
||
Переменный Контекст | Глобальная переменная | ||
Динамическая Переменная | Да | ||
Разрешенные Значения | |||
Ввести | numeric |
||
Значение по умолчанию | 1 |
||
Минимальное Значение | 0 |
Минимальное число неалфавитно-цифровых символов, что пароли, проверенные validate_password
плагин должен иметь, если политика паролей MEDIUM
или более
сильный. Эта переменная недоступна, если тот плагин не устанавливается.