8.1.2.3 Пароли и регистрация
Пароли могут быть записаны как открытый текст в операторах SQL, таких как CREATE USER, GRANT и SET PASSWORD. Если такие операторы регистрируются сервером MySQL как записанные, пароли в них становятся видимыми для любого, у кого есть доступ к журналам.
Регистрация операторов предотвращает запись паролей в открытом виде для следующих операторов:
CREATE USER ... IDENTIFIED BY ...
ALTER USER ... IDENTIFIED BY ...
SET PASSWORD ...
START REPLICA ... PASSWORD = ...
CREATE SERVER ... OPTIONS(... PASSWORD ...)
ALTER SERVER ... OPTIONS(... PASSWORD ...)
Пароли в этих операторах переписываются так, чтобы не отображаться в тексте операторов, записываемых в общий журнал запросов, журнал медленных запросов и двоичный журнал. Перезапись не применяется к другим операторам. В частности, операторы INSERT или UPDATE для системной таблицы mysql.user, которые ссылаются на литеральные пароли, регистрируются как есть, поэтому следует избегать таких операторов. (В любом случае, прямое изменение таблиц разрешений не рекомендуется.)
Для общего журнала запросов перезапись паролей можно отключить, запустив сервер с опцией --log-raw. По соображениям безопасности эта опция не рекомендуется для использования в рабочей среде. В диагностических целях может быть полезно видеть точный текст операторов, полученных сервером.
По умолчанию, содержимое файлов журнала аудита, созданных плагином журнала аудита, не зашифровано и может содержать конфиденциальную информацию, такую как текст операторов SQL. По соображениям безопасности файлы журнала аудита должны записываться в каталог, доступный только серверу MySQL и пользователям с законным правом просмотра журнала. См. Раздел 8.4.5.3, «Рекомендации по безопасности аудита MySQL Enterprise».
Операторы, полученные сервером, могут быть переписаны, если установлен плагин переработки запросов (см. Плагины переработки запросов). В этом случае опция --log-raw влияет на регистрацию операторов следующим образом:
Следствием перезаписи паролей является то, что операторы, которые нельзя разобрать (например, из-за синтаксических ошибок), не записываются в общий журнал запросов, потому что нельзя быть уверенным, что они не содержат паролей. Случаи, которые требуют регистрации всех операторов, включая те, которые содержат ошибки, должны использовать опцию --log-raw, помня при этом, что это также отключает перезапись паролей.
Перезапись паролей происходит только тогда, когда ожидаются пароли в открытом виде. Для операторов с синтаксисом, ожидающим значения хэша пароля, перезапись не происходит. Если для такого синтаксиса ошибочно предоставлен пароль в открытом виде, пароль записывается как предоставленный, без перезаписи.
Для защиты файлов журналов от несанкционированного доступа, разместите их в каталоге, который ограничивает доступ сервера и администратора базы данных. Если сервер записывает в таблицы базы данных mysql, предоставьте доступ к этим таблицам только администратору базы данных.
Реплики хранят пароль сервера-источника репликации в репозитории метаданных соединения, который по умолчанию представляет собой таблицу в базе данных mysql с именем slave_master_info. Использование файла в каталоге данных для репозитория метаданных соединения теперь устарело, но все еще возможно (см. Раздел 19.2.4, «Журнал ретрансляции и репозитории метаданных репликации»). Убедитесь, что к репозиторию метаданных соединения может получить доступ только администратор базы данных. Альтернативой хранению пароля в репозитории метаданных соединения является использование оператора START REPLICA или START GROUP_REPLICATION для указания учетных данных для подключения к источнику.
Используйте ограниченный режим доступа для защиты резервных копий баз данных, которые включают таблицы журналов или файлы журналов, содержащие пароли.
© 2025 Oracle
Licensed under the GPLv2 License.