Spec-Zone .ru
спецификации, руководства, описания, API

4.5.1.3. Журналирование mysql

mysql клиент может сделать эти типы журналирования для операторов, выполняемых в интерактивном режиме:

Следующее обсуждение описывает характеристики, которые применяются ко всем типам журналирования, и предоставляет информацию, определенную для каждого типа журналирования.

Как Журналирование Происходит

Поскольку каждый позволял регистрировать место назначения, журналирование оператора происходит следующим образом:

Следовательно, входной оператор, который охватывает многократные строки, может быть зарегистрирован дважды. Рассмотрите этот ввод:

mysql> SELECT    -> 'Today is'    -> ,    -> CONCAT()    -> ;

В этом случае mysql регистрирует "ИЗБРАННОЕ", "'Сегодня is'",",", "CONCAT ()", и";" строки, поскольку это читает их. Это также регистрирует полный оператор после отображения SELECT\n'Today is'\n,\nCURDATE() к SELECT 'Today is' , CURDATE(), плюс разделитель. Таким образом эти строки появляются в зарегистрированном выводе:

SELECT'Today is',CURDATE();SELECT 'Today is' , CURDATE();

mysql игнорирует для того, чтобы зарегистрировать операторы целей, которые соответствуют любой образец в "проигнорировать" списке. По умолчанию список образца "*IDENTIFIED*:*PASSWORD*", проигнорировать операторы, которые обращаются к паролям. Сопоставление с образцом не является чувствительным к регистру. В пределах образцов два символа являются особенными:

Чтобы определить дополнительные образцы, используйте --histignore опция или набор MYSQL_HISTIGNORE переменная окружения. (Если оба определяются, значение опции имеет приоритет.) Значение должно быть разделенным от двоеточия списком одного или более образцов, которые добавляются к списку образца значения по умолчанию.

Образцы, определенные на командной строке, возможно, должны были бы быть заключены в кавычки или выйтись, чтобы препятствовать тому, чтобы Ваш интерпретатор команд обработал их особенно. Например, чтобы подавить журналирование для UPDATE и DELETE операторы в дополнение к операторам, которые обращаются к паролям, вызовите mysql как это:

shell> mysql --histignore="*UPDATE*:*DELETE*"

Управление Файлом Истории

.mysql_history файл должен быть защищен с рестриктивным режимом доступа, потому что уязвимая информация могла бы быть записана ему, такие как текст SQL-операторов, которые содержат пароли. См. Раздел 6.1.2.1, "Направляющие линии Конечного пользователя для Безопасности Пароля".

Если Вы не хотите поддерживать файл истории, сначала удалите .mysql_history если это существует. Затем используйте любой из следующих методов, чтобы препятствовать тому, чтобы это было создано снова:

syslog Журналирование Характеристик

Если --syslog опция дается, mysql пишет интерактивные операторы в системное средство журналирования. У журналирования сообщения есть следующие характеристики.

Журналирование происходит на "информационном" уровне. Это соответствует LOG_INFO приоритет для syslog на Unix/Linux syslog возможность и к EVENTLOG_INFORMATION_TYPE для Windows Event Log. Консультируйтесь со своей системной документацией для конфигурации Вашей возможности журналирования.

Размер сообщения ограничивается 1024 байтами.

Сообщения состоят из идентификатора MysqlClient сопровождаемый этими значениями:

Вот выборка вывода, сгенерированного на Linux при использовании --syslog. Этот вывод форматируется для удобочитаемости; каждое зарегистрированное сообщение фактически берет одну строку.

Mar  7 12:39:25 myhost MysqlClient[20824]:  SYSTEM_USER:'oscar', MYSQL_USER:'my_oscar', CONNECTION_ID:23,  DB_SERVER:'127.0.0.1', DB:'--', QUERY:'USE test;'Mar  7 12:39:28 myhost MysqlClient[20824]:  SYSTEM_USER:'oscar', MYSQL_USER:'my_oscar', CONNECTION_ID:23,DB_SERVER:'127.0.0.1', DB:'test', QUERY:'SHOW TABLES;'