Oracle DB: Аудит: различия между версиями
Перейти к навигации
Перейти к поиску
Admin (обсуждение | вклад) |
Admin (обсуждение | вклад) |
||
Строка 34: | Строка 34: | ||
</pre> | </pre> | ||
+ | '''Просмотр политик аудита''' | ||
+ | <pre> | ||
+ | -- все политики аудита определенные в базе данных | ||
+ | select * from DBA_AUDIT_POLICIES; | ||
+ | |||
+ | -- все политики аудита, определенные над таблицами и представлениями, доступными текущему пользователю | ||
+ | select * from ALL_AUDIT_POLICIES; | ||
+ | |||
+ | -- все политики аудита, определенные над таблицами и представлениями владельцем которых является текущий пользователь | ||
+ | select * from USER_AUDIT_POLICIES | ||
+ | |||
+ | </pre> | ||
'''Настройка аудита на уровне базы''' | '''Настройка аудита на уровне базы''' |
Версия 13:04, 12 мая 2025
Traditional Audit (12.1 и ниже)
Доступ на управление аудитом
grant AUDIT_ADMIN to <user> grant AUDIT_VIEWER to <user>
Параметр AUIDIT_TRAIL
AUIDIT_TRAIL = NONE | OS | DB [, EXTENDED] | XML [, EXTENDED] NONE - аудит выключен (значение по умолчанию) OS - записи аудита пишутся в файлы DB - записи аудита пишутся в таблицу SYS.AUD$, кроме тех что всегда пишутся в файлы если база открыта в режиме READ ONLY, то аудит будет записываться в файлы DB,EXTENDED - аналогично DB, но в таблице аудита дополнительно заполняются поля SQL_TEXT, SQL_BIND XML - записи аудита пишутся в файлы в формате XML XML,EXTENDED - аналогично XML, но в файлы дополнительно пишутся поля SQL_TEXT, SQL_BIND
Проверка параметров аудита
select name,value from v$parameter where name like 'audit_%'; NAME VALUE ------------------------------ ---------------------------------------- audit_sys_operations FALSE audit_file_dest /opt/oracle/admin/mydb1/adump audit_syslog_level audit_trail NONE
Просмотр политик аудита
-- все политики аудита определенные в базе данных select * from DBA_AUDIT_POLICIES; -- все политики аудита, определенные над таблицами и представлениями, доступными текущему пользователю select * from ALL_AUDIT_POLICIES; -- все политики аудита, определенные над таблицами и представлениями владельцем которых является текущий пользователь select * from USER_AUDIT_POLICIES
Настройка аудита на уровне базы
AUDIT ALL PRIVILEGES BY NORMAL; AUDIT SELECT ON DBA_TABLES BY NORMAL; AUDIT SELECT ON my_user.my_table BY NORMAL;
Unified Audit (12.2 и выше)
В версии Oracle Database 12c и выше реализован новый механизм аудита Unified Audit
дополнительные параметры для Unified Audit
unified_audit_common_systemlog unified_audit_sga_queue_size unified_audit_systemlog
На уровне базы данных Unified Audit настраивается с помощью политик аудита. По умолчанию, в базе есть предварительно созданные политики аудита.
Обслуживание аудита
Ссылки по теме:
- Как обслуживать таблицу AUD$ : Oracle
- Administering the Audit Trail
- Практическое администрирование Oracle - Аудит. Часть1.
- Практическое администрирование Oracle - Аудит. Часть2.
Типы аудита
- AUDIT_TRAIL_ALL, все типы аудита
- AUDIT_TRAIL_AUD_STD, стандартная таблица аудита, AUD$
- AUDIT_TRAIL_FGA_STD, Fine-grained, таблица FGA_LOG$
- AUDIT_TRAIL_UNIFIED
- AUDIT_TRAIL_XML
- AUDIT_TRAIL_OS
Ручная чистка стандартного аудита
-- определение размера таблиц SELECT segment_name, round(bytes/1024/1024/1024,1) as sz_gb FROM DBA_SEGMENTS WHERE SEGMENT_NAME IN ('AUD$', 'FGA_LOG$'); -- определение диапазона дат и количества записей col t1 format a30; col t2 format a30; SELECT min(ntimestamp#) t1, max(ntimestamp#) t2, count(*) count FROM SYS.AUD$; SELECT min(ntimestamp#) t1, max(ntimestamp#) t2, count(*) count FROM SYS.FGA_LOG$; -- проверка параметров автоматической чистки SELECT * FROM DBA_AUDIT_MGMT_CONFIG_PARAMS; PARAMETER_NAME PARAMETER_VALUE AUDIT_TRAIL ------------------------------ -------------------- ------------------------------------------------------------------------------------ DEFAULT CLEAN UP INTERVAL 24 STANDARD AUDIT TRAIL DEFAULT CLEAN UP INTERVAL 24 FGA AUDIT TRAIL -- если присутствуют данные параметры, то необходимо переинициализировать автоматическую чистку -- если параметры отсутствуют, то необходимо инициализировать автоматическую чистку -- переинициализация автоматической чистки BEGIN DBMS_AUDIT_MGMT.DEINIT_CLEANUP( AUDIT_TRAIL_TYPE => DBMS_AUDIT_MGMT.AUDIT_TRAIL_AUD_STD ); DBMS_AUDIT_MGMT.INIT_CLEANUP( AUDIT_TRAIL_TYPE => DBMS_AUDIT_MGMT.AUDIT_TRAIL_AUD_STD, DEFAULT_CLEANUP_INTERVAL => 24*7 // интервал задается в часах, допустимый диапазон [1-999] ); END; -- чистка до заданной даты -- необходимо учитывать, что чистка может привести к переполнению каталога с архив-логами -- необходимо определить диапазон данных аудита и выбирать дату так, чтобы в одну итерацию чистки не попадало слишком много данных BEGIN SYS.DBMS_AUDIT_MGMT.SET_LAST_ARCHIVE_TIMESTAMP ( AUDIT_TRAIL_TYPE => SYS.DBMS_AUDIT_MGMT.AUDIT_TRAIL_AUD_STD, LAST_ARCHIVE_TIME => SYSTIMESTAMP - <retention_days> ); SYS.DBMS_AUDIT_MGMT.CLEAN_AUDIT_TRAIL ( AUDIT_TRAIL_TYPE => SYS.DBMS_AUDIT_MGMT.AUDIT_TRAIL_AUD_STD, USE_LAST_ARCH_TIMESTAMP => TRUE ); commit; END; /