|
Spec-Zone .ru
спецификации, руководства, описания, API
|
Контрольное содержание файла журнала не шифруется. См. Раздел 6.3.11.2, "Контрольные Соображения Безопасности Плагина Журнала".
Контрольный файл журнала пишется как XML, используя UTF-8 (до 4 байтов за символ). Корневой элемент <AUDIT>. Закрытие </AUDIT> тег корневого
элемента пишется, когда контрольный плагин журнала завершается, таким образом, тег не присутствует в файле, в то
время как плагин является активным.
Корневой элемент содержит <AUDIT_RECORD> элементы. Каждый <AUDIT_RECORD> у элемента есть пустое тело; все контрольные поля записи
представляются атрибутами элемента.
Вот демонстрационный файл журнала, переформатированный немного для удобочитаемости:
<?xml version="1.0" encoding="UTF-8"?><AUDIT> <AUDIT_RECORD TIMESTAMP="2012-08-02T14:52:12" NAME="Audit" SERVER_ID="1" VERSION="1" STARTUP_OPTIONS="--port=3306" OS_VERSION="i686-Linux" MYSQL_VERSION="5.6.10-log"/> <AUDIT_RECORD TIMESTAMP="2012-08-02T14:52:41" NAME="Connect" CONNECTION_ID="1" STATUS="0" USER="root" PRIV_USER="root" OS_LOGIN="" PROXY_USER="" HOST="localhost" IP="127.0.0.1" DB=""/> <AUDIT_RECORD TIMESTAMP="2012-08-02T14:53:45" NAME="Query" CONNECTION_ID="1" STATUS="0" SQLTEXT="INSERT INTO t1 () VALUES()"/> <AUDIT_RECORD TIMESTAMP="2012-08-02T14:53:51" NAME="Quit" CONNECTION_ID="1" STATUS="0"/> <AUDIT_RECORD TIMESTAMP="2012-08-06T14:21:03" NAME="NoAudit" SERVER_ID="1"/></AUDIT>
Атрибуты <AUDIT_RECORD> у элементов есть эти характеристики:
Некоторые атрибуты появляются в каждом элементе, но большинство является дополнительным и не обязательно появляется в каждом элементе.
Порядок атрибутов в пределах элемента не гарантируется.
Значения атрибута не являются фиксированной длиной. Длинные значения могут быть усеченными как обозначено в описаниях атрибута, данных позже.
<, >, ", и & символы кодируются как <, >, ",
и &, соответственно. Байты NUL (U+00) кодируются как ? символ.
Символы, не допустимые как символы XML, кодируются, используя ссылки цифры. Допустимые символы XML:
#x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF]
Каждый <AUDIT_RECORD> элемент содержит ряд обязательных атрибутов. Другие
дополнительные атрибуты могут появиться в зависимости от контрольного типа записи.
Следующие атрибуты обязательны в каждом <AUDIT_RECORD> элемент:
NAME
Строка, представляющая тип инструкции, которая генерировала событие аудита, такое как команда что сервер, полученный от клиента.
Пример: NAME="Query"
Некоторые распространенные NAME значения:
"Audit" When auditing starts, which may be server startup time"Connect" When a client connects, also known as logging in"Query" An SQL statement (executed directly)"Prepare" Preparation of an SQL statement; usually followed by Execute"Execute" Execution of an SQL statement; usually follows Prepare"Shutdown" Server shutdown"Quit" When a client disconnects"NoAudit" Auditing has been turned off
Возможные значения "Audit", "Binlog
Dump", "Change user",
"Close stmt", "Connect Out", "Connect", "Create DB",
"Daemon", "Debug",
"Delayed insert", "Drop
DB", "Execute", "Fetch",
"Field List", "Init
DB", "Kill", "Long
Data", "NoAudit",
"Ping", "Prepare", "Processlist",
"Query", "Quit",
"Refresh", "Register Slave", "Reset stmt", "Set
option", "Shutdown",
"Sleep", "Statistics", "Table Dump", "Time".
За исключением "Audit" и "NoAudit",
эти значения соответствуют COM_ значения команды, перечисленные в xxxmysql_com.h заголовочный файл. Например,
"Create DB" и "Shutdown" соответствовать
COM_CREATE_DB и COM_SHUTDOWN,
соответственно.
TIMESTAMP
Дата и время, когда событие аудита было сгенерировано. Например, у события, соответствующего
выполнению SQL-оператора, полученного от клиента, есть a TIMESTAMP
значение, происходящее после концов оператора, не, когда это получается. Значением является UTC в
формате (с yyyy-mm-ddThh:mm:ssT,
никакие десятичные числа).
Пример: TIMESTAMP="2012-08-09T12:55:16"
Следующие атрибуты являются дополнительными в <AUDIT_RECORD> элементы. Многие
из них происходят только для элементов с определенными значениями NAME атрибут.
CONNECTION_ID
Целое без знака, представляющее клиентский идентификатор соединения. Это - то же самое как CONNECTION_ID() значение функции в пределах сеанса.
Пример: CONNECTION_ID="127"
DB
Строка, представляющая имя базы данных значения по умолчанию. Этот атрибут появляется только если
NAME значение "Connect" или
"Change user".
HOST
Строка, представляющая имя хоста клиента. Этот атрибут появляется только если NAME
значение "Connect" или "Change
user".
Пример: HOST="localhost"
IP
Строка, представляющая клиентский IP-адрес. Этот атрибут появляется только если NAME значение "Connect" или "Change user".
Пример: IP="127.0.0.1"
MYSQL_VERSION
Строка, представляющая версию сервера MySQL. Это - то же самое как значение VERSION() функция или version системная переменная. Этот атрибут появляется только если
NAME значение "Audit".
Пример: MYSQL_VERSION="5.6.11-log"
OS_LOGIN
Строка, представляющая внешнего пользователя (пустой, если ни один). Значение может отличаться от
USER, например, если сервер аутентифицирует клиент, использующий
внешний метод аутентификации. Этот атрибут появляется только если NAME
значение "Connect" или "Change
user".
OS_VERSION
Строка, представляющая операционную систему, на которой сервер был создан или работает. Этот атрибут
появляется только если NAME значение "Audit".
Пример: OS_VERSION="x86_64-Linux"
PRIV_USER
Строка, представляющая пользователя, что сервер, аутентифицируемый клиент как. Это - имя
пользователя, которое сервер использует для проверки полномочия, и может отличаться от USER значение. Этот атрибут появляется только если NAME значение "Connect" или
"Change user".
PROXY_USER
Строка, представляющая пользователя прокси. Значение пусто, если пользователь, проксирующий, не в
действительности. Этот атрибут появляется только если NAME значение
"Connect" или "Change
user".
SERVER_ID
Целое без знака, представляющее ID сервера. Это - то же самое как значение server_id системная переменная. Этот атрибут появляется только если
NAME значение "Audit" или "NoAudit".
Пример: SERVER_ID="1"
SQLTEXT
Строка, представляющая текст SQL-оператора. Значение может быть пустым. Длинные значения могут быть
усеченными. Этот атрибут появляется только если NAME значение "Query" или
"Execute".
Строка, как контрольный файл журнала непосредственно, пишется, используя UTF-8 (до 4 байтов за символ), таким образом, значение может быть результатом преобразования. Например, исходный оператор, возможно, был получен от клиента как строка SJIS.
Пример: SQLTEXT="DELETE FROM t1"
STARTUP_OPTIONS
Строка, представляющая опции, которые были даны на командной строке или в файлах опции, когда сервер
MySQL был запущен. Этот атрибут появляется только если NAME значение
"Audit".
Пример: STARTUP_OPTIONS="--port=3306 --log-output=FILE"
STATUS
Целое без знака, представляющее состояние команды: 0 для успеха, ненулевого, если ошибка произошла.
Это - то же самое как значение mysql_errno()
C API-функция.
Контрольный журнал не содержит значение SQLSTATE или сообщение об ошибке. Чтобы видеть ассоциации между кодами ошибки, значения SQLSTATE, и сообщения, видят Раздел C.3, "Коды ошибки сервера и сообщения".
Предупреждения не регистрируются.
Пример: STATUS="1051"
USER
Строка, представляющая имя пользователя, передалась клиентом. Это может отличаться от PRIV_USER значение. Этот атрибут появляется только если NAME значение "Connect" или "Change user".
VERSION
Целое без знака, представляющее версию контрольного формата файла журнала. Этот атрибут появляется
только если NAME значение
"Audit".
Пример: VERSION="1"