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_
значения команды, перечисленные в xxx
mysql_com.h
заголовочный файл. Например,
"Create DB"
и "Shutdown"
соответствовать
COM_CREATE_DB
и COM_SHUTDOWN
,
соответственно.
TIMESTAMP
Дата и время, когда событие аудита было сгенерировано. Например, у события, соответствующего
выполнению SQL-оператора, полученного от клиента, есть a TIMESTAMP
значение, происходящее после концов оператора, не, когда это получается. Значением является UTC в
формате
(с yyyy-mm-dd
Thh:mm:ss
T
,
никакие десятичные числа).
Пример: 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"