Материал: Горбатов Аттестационные испытания автоматизированных систем от 2014

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

AUDIT_COLUMN_OPTS => dbms_fga.all_columns, AUDIT_TRAIL => dbms_fga.db_extended, HANDLER_SCHEMA=>null, HANDLER_MODULE=>null,

ENABLE=>true);

END;

/

DELETE FROM dba_fga_audit_trail;

Выполним пользователем «FORD» запрос:

Conn ford/ford@orcl SELECT * FROM scott.emp;

Затем пользователем «MAIN» изменим значение столбца «sal».

Conn main/maint@orcl

Alter session set nls_date_format = ‘yyyy-mon-dd:HH:MI:SS’; col sql_text format a100

Update scott.emp set sal= 6000 where ename=’KING’; Commit;

Теперь, если извлекать строки таблицы «emp», в строке KING зарплата будет иметь значение «6000». А что видел FORD?

Выполним запрос к представлению «dba_fga_audit_trail», в котором выведем значение SCN (sytem change number – можно сказать, соответствует отсчету внутренних часов Oracle) для запроса

FORD:

select db_user, sql_text, timestamp,scn from dba_fga_audit_trail WHERE db_user=’FORD’;

DB_USER SQL_TEXT TIMESTAM SCN

---------- -------------------------------------- ---------------------- -----------

FORD SELECT*FROM scott.emp 2010-май-30:02:55:11 13705104

А теперь выполним команду, которая позволит просмотреть строки таблицы «emp» на момент с SCN=13705104, т.е. на тот момент, когда запрос делал FORD:

select * from scott.emp as of SCN 13705104;

 

EMPNO ENAME

JOB MGR HIREDATE SAL COMM DEPTNO

---------- ---------- ---------

---------- -------- ---------- ---------- ----------

7839 KING

PRESIDENT 17.11.81 5000

10

 

421

 

Остальные строки, кроме KING-а нам неинтересны, ведь изменялось значение только в этой строке.

Для того чтобы пользователь «main» мог выполнять такое извлечение прошлого состояния строки, ему была дана привилегия

«FLASHBACK ANY TABLE».

3. Определение политики (правила) аудита с обработкой событий для выбранной предметной области.

Проверка выполнения детального аудита с обработкой событий в соответствии с определенной политикой

В предыдущих разделах этой лабораторной работы мы в числе параметров процедуры DBMS_FGA.ADD_POLICY указывали, но не задавали значения, параметры «HANDLER_SCHEM», «HANDLER_MODULE». Эти два параметра задают владельца модуля обработки данных детального аудита и название этого модуля. Создадим в схеме «main» таблицу (с незначительной корректировкой) и процедуру для обработки данных детального аудита по образцу, приведенному в книге «Oracle PL/SQL для администраторов баз данных» авторов Аруп Нанда и Стивен Фейерштейн, изданной издательством «Символ-Плюс» в 2008 году.

conn main/main@orcl

CREATE TABLE flagged_access

(

fgasid NUMBER(20), entryid NUMBER(20), audit_date DATE, fga_policy VARCHAR2(30), db_user VARCHAR(30), os_user VARCHAR2(30),

authent_type VARCHAR2(30), client_id VARCHAR2(100), client_info VARCHAR2(64), host_name VARCHAR2(54), instance_id NUMBER(2),

ip VARCHAR2(30), term VARCHAR2(30),

422

schema_owner VARCHAR2(20), table_name VARCHAR2(30), sql_text VARCHAR2(64),

SCN NUMBER(10) ) ;

create or replace procedure access_flagger

(

p_table_owner in varchar2, p_table_name in varchar2, p_fga_policy in varchar2

)

is

l_fgasid number(20); l_entryid number(20); l_term varchar2(2000); l_db_user varchar2(30); l_os_user varchar2(30);

l_authent_type varchar2(2000); l_client_id varchar2(100); l_client_info varchar2(64); l_host_name varchar2(30); l_instance_id number(2);

l_ip varchar2(30); l_sql_text varchar2(4000); l_scn number;

begin

l_fgasid := sys_context('USERENV','SESSIONID'); l_entryid := sys_context('USERENV','ENTRYID'); l_term := sys_context('USERENV','TERMINAL');

l_db_user := sys_context('USERENV','SESSION_USER'); l_os_user := sys_context('USERENV','OS_USER');

l_authent_type := sys_context('USERENV','AUTHENTICATION_TYPE' );

l_client_id := sys_context('USERENV','CLIENT_IDENTIFIER'); l_client_info := sys_context('USERENV','CLIENT_INFO'); l_host_name := sys_context('USERENV','HOST');

423

l_instance_id := sys_context('USERENV','INSTANCE'); l_ip := sys_context('USERENV','IP_ADDRESS'); l_sql_text := sys_context('USERENV','CURRENT_SQL'); l_scn := sys.dbms_flashback.get_system_change_number; insert into flagged_access

(

fgasid,

entryid, audit_date, fga_policy, db_user, os_user, authent_type, client_id, client_info, host_name, instance_id, ip,

term, schema_owner, table_name, sql_text,

scn

)

values

(

l_fgasid, l_entryid, sysdate, p_fga_policy, l_db_user, l_os_user, l_authent_type, l_client_id, l_client_info, l_host_name, l_instance_id, l_ip,

424

l_term, p_table_owner, p_table_name, l_sql_text, l_scn

);

end;

/

Обратим внимание на то, что в созданную нами таблицу аудита вставляется информация из системного контекста, идентифицирующая атрибуты клиента, выполнившего запрос, в том числе и такая, какой нет в представлении «dba_fga_audit_trail». Для того чтобы использовать обработчик в приведенном варианте, пользователю «main» была дана привилегия, на основании которой при выполнении процедуры можно будет извлекать и записывать SCN

в таблицу flagged_access:

GRANT EXECUTE ON dbms_flashback TO main;

Пересоздадим политику:

begin DBMS_FGA.DROP_POLICY( OBJECT_SCHEMA => 'scott', OBJECT_NAME => 'emp', policy_name => 'CHK_EMPA'); end;

/

BEGIN DBMS_FGA.ADD_POLICY( OBJECT_SCHEMA => 'scott', OBJECT_NAME => 'emp', POLICY_NAME => 'chk_empa',

AUDIT_CONDITION => 'sal >1500', AUDIT_COLUMN => 'ename,sal', STATEMENT_TYPES => 'select, insert, update, delete', AUDIT_COLUMN_OPTS => dbms_fga.all_columns, AUDIT_TRAIL => dbms_fga.db_extended,

425

Смотрите также:

1872
3767
Анализ системы автоматического управления стабилизации напряжения генератора
Вольтер. Слепые судьи, рассуждающие о цвете предметов
ИздательствоЮжно-Уральский государственный аграрный университетISBNГод2006Страниц19Уровень образованияБакалавриат. Сельскохозяйственные рынки
Изучение «электротехнических» причин пожаров при расследовании и экспертизе. методические указания к выполнению лабораторных работ по дисциплине «Расследование и экспертиза пожаров». Скляров К.А., Сушко Е.А
Культурная среда города как фактор повышения инвестиционной привлекательности территории
Малый бизнес
Метрики и методы преобразования чертежа. методические указания для студентов направления Строительство. Иващенко Е.И
Особенности лексико-грамматической стороны речи у детей дошкольного возраста с ОНР