1. Просмотр логов
1.1. Стандартные средства аудита
1.1.1. Данные из таблицы AUD$
1.2. Ручные средства аудита
1.2.1. Данные из таблицы - ICASI_AUDIT
2. БД
2.1. ICASI - основная БАЗА
2.2. Пользователи
2.2.1. Пользователь А - под кем происходит подключение к БД
2.2.2. Пользовател Б - sysdba для БД
2.2.3. Пользователь С - отдельное табличное пространство. http://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_7003.htm
2.3. Таблицы для которых используется триггер
3. Логирование изменений
3.1. Таблицы с данным для логирования
3.1.1. Триггер
3.1.1.1. Заголовок - CREATE OR REPLACE TRIGGER NAME_TRIGGER BEFORE DELETE OR INSERT OR UPDATE ON TABLE_NAME
3.1.1.2. Тело: DECLARE ACTION VARCHAR2(10); BEGIN IF INSERTING THEN ACTION := 'INSERT'; ELSIF UPDATING THEN ACTION := 'UPDATE'; ELSIF DELETING THEN ACTION := 'DELETE'; END IF; USER_ACTION_INFO := 'IP:'||SYS_CONTEXT('USERENV','IP_ADDRESS') ||';'|| 'HOST:'||SYS_CONTEXT ('USERENV','HOST')||';'|| 'TERMINAL:'||sys_context('USERENV','TERMINAL')||';'|| 'DB_NAME:'||ORA_DATABASE_NAME||';'|| 'CLIENT_INFO:'||11||';'|| 'OS_USER:'||SYS_CONTEXT('USERENV','OS_USER')||';'|| 'SESSION_USER:'||SYS_CONTEXT('USERENV','SESSION_USER')||';'|| 'SID:'||SYS_CONTEXT('USERENV','SESSIONID')||';'; INSERT INTO ICASI_ADMIN.ICASI_AUDIT(TABLE_NAME, ID_RECORD, USER_ACTION_INFO, ACTION, SQL_TEXT_QUERY) VALUES (' SFDSDF'||SYS_CONTEXT('USERENV', 'CURRENT_SQL') , :OLD.ID||:NEW.ID, USER_ACTION_INFO, ACTION, ' ' ); END NAME_TRIGGER;
3.1.1.3. Summary
3.1.1.3.1. CREATE OR REPLACE TRIGGER test1 BEFORE DELETE OR INSERT OR UPDATE ON ICASI_ADMIN.ALARMS DECLARE ACTION VARCHAR2(10); BEGIN IF INSERTING THEN ACTION := 'INSERT'; ELSIF UPDATING THEN ACTION := 'UPDATE'; ELSIF DELETING THEN ACTION := 'DELETE'; END IF; USER_ACTION_INFO := 'IP:'||SYS_CONTEXT('USERENV','IP_ADDRESS') ||';'|| 'HOST:'||SYS_CONTEXT ('USERENV','HOST')||';'|| 'TERMINAL:'||sys_context('USERENV','TERMINAL')||';'|| 'DB_NAME:'||ORA_DATABASE_NAME||';'|| 'CLIENT_INFO:'||11||';'|| 'OS_USER:'||SYS_CONTEXT('USERENV','OS_USER')||';'|| 'SESSION_USER:'||SYS_CONTEXT('USERENV','SESSION_USER')||';'|| 'SID:'||SYS_CONTEXT('USERENV','SESSIONID')||';'; INSERT INTO ICASI_ADMIN.ICASI_AUDIT(TABLE_NAME, ID_RECORD, USER_ACTION_INFO, ACTION, SQL_TEXT_QUERY) VALUES (' SFDSDF'||SYS_CONTEXT('USERENV', 'CURRENT_SQL') , :OLD.ID||:NEW.ID, USER_ACTION_INFO, ACTION, ' ' ); END NAME_TRIGGER;
3.1.1.4. Момент выполнения - AFTER
3.1.2. Структура таблицы для логирования - AUDIT
3.1.2.1. ID
3.1.2.2. TABLE_NAME
3.1.2.3. ID_RECORD
3.1.2.4. DT_ACTION
3.1.2.5. USER_ACTION_INFO
3.1.2.5.1. IP_ADDRESS
3.1.2.5.2. HOST
3.1.2.5.3. DB_NAME
3.1.2.5.4. CLIENT_INFO
3.1.2.5.5. OS_USER
3.1.2.5.6. SESSION_USER
3.1.2.5.7. SESSIONID
3.1.2.5.8. SID
3.1.2.6. ACTION
3.1.2.6.1. IF INSERTING THEN ACTION := 'INSERT'; ELSIF UPDATING THEN ACTION := 'UPDATE'; ELSIF DELETING THEN ACTION := 'DELETE'; END IF;
3.1.2.7. DATA
3.1.2.7.1. CREATE SEQUENCE ICASI_ADMIN.SEQ_ICASI_AUDIT START WITH 1 INCREMENT BY 1;
3.1.2.7.2. CREATE OR REPLACE TRIGGER ICASI_ADMIN.ICASI_AUDIT BEFORE INSERT ON ICASI_ADMIN.ICASI_AUDIT FOR EACH ROW BEGIN IF :NEW.id IS NULL THEN SELECT SEQ_ICASI_AUDIT.NEXTVAL INTO :NEW.id FROM dual; END IF; :NEW.DT_ACTION := SYSDATE; END;
3.1.2.7.3. CREATE TABLE ICASI_ADMIN.ICASI_AUDIT(ID NUMBER(10) PRIMARY KEY, TABLE_NAME varchar2(50) NOT NULL, ID_RECORD NUMBER(10), DT_ACTION DATE, USER_ACTION_INFO varchar2(250), ACTION varchar2(50), DATA varchar2(50) , SQL varchar2(250));
3.1.2.8. SQL
3.1.2.8.1. CREATE TRIGGER ICASI_ADMIN.ICASI_AUDIT BEFORE INSERT ON ICASI_ADMIN.ICASI_AUDIT FOR EACH ROW BEGIN IF :NEW.id IS NULL THEN SELECT SEQ_ALARMS.NEXTVAL INTO :NEW.id FROM dual; END IF; END; /
3.2. Данные для логирования
3.2.1. Кто изменил/создал запись
3.2.2. Когда изменил/создал запись
3.2.3. Идентификатор компа с которого изменили/создали запись - http://docs.oracle.com/cd/B19306_01/server.102/b14200/functions165.htm
3.3. Права пользователей
3.3.1. Таблица для логирование
3.3.1.1. Владелец C
3.3.1.2. Вставка значений - А
3.3.2. GRANT SELECT ON V_$SESSION TO ICASI_ADMIN;
4. Стандартные средства аудита
4.1. Ссылки
4.1.1. http://citforum.ru/database/oracle/audit/
4.1.2. http://oracle-base.com/articles/10g/auditing-10gr2.php