События, связанные с пользователями

События, связанные с пользователями, представлены в таблице 12.

Таблица 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

  1. 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;
  2. Для включения протоколирования неуспешных событий необходимо выполнить команды:

    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 < идентификатор >».