События, связанные с пользователями
События, связанные с пользователями, представлены в таблице 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 <идентификатор>».