6.1.2.3 Пароли и регистрация
Пароли могут быть записаны как обычный текст в операторах SQL, таких как CREATE USER, GRANT, SET
PASSWORD, и операторы, которые вызывают функцию PASSWORD(). Если такие операторы регистрируются сервером MySQL как написанные, пароли в них становятся видимыми для всех, у кого есть доступ к журналам.
Регистрация операторов предотвращает запись паролей как открытого текста для следующих операторов:
CREATE USER ... IDENTIFIED BY ...
ALTER USER ... IDENTIFIED BY ...
GRANT ... IDENTIFIED BY ...
SET PASSWORD ...
SLAVE START ... PASSWORD = ...
CREATE SERVER ... OPTIONS(... PASSWORD ...)
ALTER SERVER ... OPTIONS(... PASSWORD ...)
Пароли в этих операторах переписываются, чтобы они не появлялись буквально в тексте операторов, записанных в общий журнал запросов, журнал медленных запросов и двоичный журнал. Перезапись не применяется к другим операторам. В частности, операторы INSERT или UPDATE для таблицы системы mysql.user, которые ссылаются на буквальные пароли, регистрируются как есть, поэтому следует избегать таких операторов. (Прямое изменение таблиц разрешений не рекомендуется, в любом случае.)
Для общего журнала запросов перезапись паролей можно подавить, запустив сервер с параметром --log-raw. По соображениям безопасности этот параметр не рекомендуется для использования в производственной среде. Для диагностических целей может быть полезно увидеть точный текст операторов, полученных сервером.
Содержание файла журнала аудита, созданного плагином журнала аудита, не зашифровано. По соображениям безопасности этот файл должен записываться в каталог, доступный только серверу MySQL и пользователям, имеющим законное основание для просмотра журнала. См. Раздел 6.4.5.3, «MySQL Enterprise Audit Security Considerations».
Операторы, полученные сервером, могут быть переписаны, если установлен плагин переписывания запросов (см. Плагины переписывания запросов). В этом случае параметр --log-raw влияет на регистрацию операторов следующим образом:
Следствием перезаписи паролей является то, что операторы, которые нельзя разобрать (например, из-за синтаксических ошибок), не записываются в общий журнал запросов, потому что нельзя знать, что они не содержат паролей. Сценарии использования, которые требуют регистрации всех операторов, включая те, которые содержат ошибки, должны использовать параметр --log-raw, помня, что это также обходит перезапись паролей.
Перезапись паролей происходит только тогда, когда ожидаются пароли в виде простого текста. Для операторов с синтаксисом, который ожидает значение хеша пароля, перезапись не происходит. Если для такого синтаксиса ошибочно предоставлен пароль в виде простого текста, пароль регистрируется как предоставленный, без перезаписи. Например, следующий оператор регистрируется, как показано, потому что ожидается значение хеша пароля:
CREATE USER 'user1'@'localhost' IDENTIFIED BY PASSWORD 'not-so-secret';
Для защиты файлов журналов от несанкционированного доступа расположите их в каталоге, который ограничивает доступ сервера и администратора базы данных. Если сервер регистрирует в таблицы в базе данных mysql, предоставьте доступ к этим таблицам только администратору базы данных.
Реплики хранят пароль источника репликации в репозитории информации источника, который может быть файлом или таблицей (см. Раздел 16.2.4, «Журналы ретрансляции и репозитории метаданных репликации»). Убедитесь, что доступ к репозиторию имеют только администраторы базы данных. Альтернативой хранению пароля в файле является использование оператора START SLAVE для указания учетных данных для подключения к источнику.
Используйте режим ограниченного доступа для защиты резервных копий баз данных, которые включают таблицы журналов или файлы журналов, содержащие пароли.
© 2025 Oracle
Licensed under the GPLv2 License.