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

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