События, связанные с пользователями
События, связанные с пользователями, представлены в таблице 12.
ID события |
Имя события |
Пояснение |
---|---|---|
50 |
COMMIT |
Фиксация транзакции |
51 |
ROLLBACK |
Откат транзакции |
1 |
CONNECT |
Подключение пользователя к БД |
2 |
DISCONNECT |
Отсоединение пользователя от БД |
54 |
OPEN CURSOR |
Открытие подчиненного канала |
55 |
CLOSE CURSOR |
Закрытие подчиненного курсора |
53 |
USER MESSAGE |
Создание пользовательского сообщения |
Примечание 1
Следующие события протоколируются и в случае успешного и в случае неуспешного выполнения (если разрешено протоколирование этих событий):
-
AUDIT START;
-
AUDIT STOP;
-
AUDIT MESSAGE < текст сообщения >;
-
SET DATABASE NAMES < имя кодировки >;
-
ALTER DATABASE SET RECORD SIZE LIMIT < длина >;
-
SET DATABASE DEFAULT CHARACTER SET < имя кодировки >;
Это означает, что если, например, выставлен режим:
AUDIT ENABLE SET DATABASE NAMES WHEN SUCCESS;
протоколироваться будут и успешные, и неуспешные события SET DATABASE NAMES
.
Примечание 2
Чтобы протоколировать вход пользователя в систему необходимо использовать одну из команд:
-
AUDIT ENABLE CONNECT [WHEN SUCCESS | WHEN NOT SUCCESS];
-
AUDIT ENABLE ACCESS DENIED [WHEN SUCCESS | WHEN NOT SUCCESS];
Данные команды не зависят друг от друга.
Пример.
AUDIT ENABLE CONNECT; AUDIT DISABLE ACCESS DENIED;
В результате работы данной последовательности команд будет выставлен режим:
AUDIT ENABLE CONNECT;
Событие «ACCESS DENIED» означает неуспешное подключение пользователя к БД, т.е. подключение с кодом ошибки.
Примечание 3
-
AUDIT ENABLE;
включает протоколирование ВСЕХ НЕУСПЕШНЫХ событий.
AUDIT DISABLE;
запрещает протоколирование ВСЕХ событий.
Команды:
AUDIT ENABLE LINTER ERROR;
AUDIT ENABLE < имя события > WHEN SUCCESS;
включают протоколирование и успешных, и неуспешных событий.
Пример.
username SYSTEM/MANAGER8 AUDIT START; AUDIT ENABLE LINTER ERROR; AUDIT ENABLE CREATE TABLE WHEN SUCCESS; ! регистрируется CREATE TABLE T1( I INT); ! регистрируется - ошибка 1503 CREATE TABLE T1( I INT); AUDIT STOP;
-
Для включения протоколирования неуспешных событий необходимо выполнить команды:
AUDIT ENABLE LINTER ERROR;
AUDIT ENABLE < имя события >;
или
AUDIT ENABLE LINTER ERROR;
AUDIT ENABLE < имя события > WHEN NOT SUCCESS;
Примечание 4
Установки для конкретного объекта БД и локальные установки срабатывают ТОЛЬКО для событий типа "TABLE EVENT", и событий EXECUTE TRIGGER и EXECUTE PROCEDURE.
Для всех событий типа "RESOURCE EVENT", если не оговорено отдельно, ключи «ON < идентификатор >» и «FOR < имя пользователя >» будут либо игнорироваться и включать протоколирование всех событий данного типа, либо обрабатываться следующим образом:
-
команда
AUDIT ENABLE < имя события > FOR < имя пользователя > [BY {SESSION | STATEMENT | ACCESS}] [WHEN NOT SUCCESS | WHEN SUCCESS];
выдает код завершения 99;
-
команда
AUDIT ENABLE < имя события > ON < идентификатор > [FOR < имя пользователя >] [BY {SESSION | STATEMENT | ACCESS}] [WHEN NOT SUCCESS | WHEN SUCCESS];
выдает код завершения 2050;
-
для события
TRUNCATE TABLE
и наON < идентификатор >
, и наFOR < имя пользователя >
выдает код завершения 99; -
для всех остальных событий – игнорируется ключ
«ON < идентификатор >»
.