Как создать триггер события Oracle, который будет регистрировать создание таблиц - PullRequest
0 голосов
/ 15 апреля 2020

Я пытаюсь написать триггер, который срабатывает после того, как пользователь создает новую таблицу и записывает создание таблицы в таблицу аудита.

У меня есть следующий стартовый код:

CREATE OR REPLACE TRIGGER create_table_trigger
AFTER CREATE
ON SCHEMA
BEGIN
 INSERT INTO TABS_MODS (ID,ACTION) VALUES (1, 'CREATE TAB');
END;

TABS_MODS - это глобальная временная таблица, как показано ниже:

CREATE GLOBAL TEMPORARY TABLE TABS_MODS (
  id NUMBER,
  action  VARCHAR2(20)
) ON COMMIT PRESERVE ROWS;

Но при создании таблицы я ничего не вижу в таблица TABS_MODS.

1 Ответ

0 голосов
/ 16 апреля 2020

Используйте для этого встроенные функции аудита Oracle. Аудит привилегий «CREATE TABLE» и «CREATE ANY TABLE». Вы не указали, какую версию Oracle вы используете, но вы можете начать здесь и искать другие примеры версий c, если они вам нужны: https://docs.oracle.com/database/121/DBSEG/auditing.htm

...