Логирование изменения структуры и данных БД

Get Started. It's Free
or sign up with your email address
Логирование изменения структуры и данных БД by Mind Map: Логирование изменения структуры и данных БД

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

4.2. select name,value from v$parameter where name like 'audit%';