Стандартный аудит базы данных в Oracle
1. Введение аудита системы Oracle
Аудит (Auditing) означает мониторинг и запись (monitoring and recording) действий конфигурированных в базе данных. Включая действия от обоих пользователей (user) database user и nondatabase user.
Nonedatabase Users:
Nondatabase Users: Это пользователь определенного приложения. Данное приложение использует базу данных Oracle, и поэтому они могут выполнить действия с базой данных. Данные пользователи должны быть идентифицированы в базе данных используя атрибут CLIENT_IDENTIFIER. Аудит данных пользователей сложнее по сравнению с аудитом пользователей базы данных (Database users).
Аудит (Auditing) является нужной и важной работой для администратора базы данных. Это эффективный инструмент, который предотврещает неверные действия. И всегда выполняется первым в любых инновациях безопасности в Oracle.
Помимо этого существуют некоторые другие причины, которые должны быть аудитированы:
- Аудитор проверяет пользователей, у которые имеют привелегию доступа к чувствительным объектам.
- Аудит трейла (Audit Trail) эффективно предотвращает пользователя от неверных действий.
- Audit Trail это обязательно, если вы расследовать и хотите узнать, что выполняется неправильно.
- Audit Trail предупреждает вас о подозрительных действиях, вы можете выполнить анализ того, что вам кажется неясным.
- Audit Trail очень важен при определении контроля доступа, особенно в существующих приложениях.
- Очень сложно определить, что "правило аудита доступа" не разрушит бизнес процесс, только если вы знаете текущее состояние и что они делают.
Audit Trail (Аудит трейла)
- Действия аудита создают Audit Trail, включая записи, позволяющие найти, что было выполнено в базе данных.
- Основываясь на это, чтобы знать что сделали пользователи, и какие привилегии были использованы …
- Для каждой записи иеется важная информация как:
- Кто выполнил
- Где выполнено (какая Schema или какой Object)
- Когда выполнено.
- Как выполнено (Какие команды SQL были выполнены).
- Так же другие полезные информации в расследовании и мониторинге.
2. Активировать режим стандартного аудита (standard audit mode)
Standard Audit (Стандартный аудит) это самая обширная и полная база аудита в базе данных Oracle. Позволяет аудитировать действия (Action), вид действий, объект, привилегию (Privilege), доступ пользователя..
Есть 2 стадии связанные с использованием Standard Audit.
- Активировать режим аудита (Audit).
- Определить категории (category) нужные для аудита, то есть определить какие действия будут создавать трейл (Создать Audit Trail).
Чтобы активировать режим аудита базы данных, вам нужно получить доступ к Oracle с пользователем имеющим привилегию sysdba.
sys/<password> as sysdba
Аудит трейлы (Audit trail) могут быть таблицей данных или файл на операционной системе. Если аудитор не имеет привилегию (privilege) DBA, лучше всего сохранять информацию аудита на файлах. Есть 4 способа для настройки хранения "аудит трейла".
Параметр | Описание |
DB | Трейл сохраненный в таблице AUD$, содержит только команду (statement) не полный текст. |
DB,EXTENDED | Трейл сохраненный в таблице AUD$, полный текст (Значения переменных (variable) для каждой записи..) |
XML | Трейл сохраненный в файле операционной системы, формата XML, содержание похожее на параметр DB. |
XML,EXTENDED | Трейл сохраненный в файле операционной системы, формата XML, содержание похожее на параметр DB,EXTENDED. |
3. Настроить Audit с параметром DB
Для начала, вам нужно активировать режим аудита с параметром DB (audit_trail = DB), выполнить команды ниже:
* SQLPLUS *
alter system set audit_trail=db scope=spfile;
shutdown immediate;
startup
В данном примере мы выполним аудит (audit) таблицы для Scott.EMP, с параметром DB, это значит "аудит трейлы" (audit trail) будут сохранены в базе данных (Точнее будут сохранены в таблице AUD$).
Audit all on scott.emp by access;
Использовать другой user чтобы выполнить некоторые действия на таблице Scott.EMP, например update. Данные действия будут сохранены в таблице AUD$.
-- Test
update scott.EMP set sal=sal*0.95 where job='MANAGER';
Запрос (query):
column username format a9
column owner format a5
column obj_name format a10
column action_name format a11
column sql_text format a40
-- Query view DBA_AUDIT_TRAIL:
select username, owner, obj_name,
action_name, sql_text from dba_audit_trail;
4. Настроить Audit с параметром DB,EXTENDED
Настроить режим аудита с параметром audit_trail = DB,EXTENDED.
alter system set audit_trail=db,extended scope=spfile;
shutdown immediate;
startup
Выполнить действие update на таблице Scott.EMP:
Audit all on scott.emp by access;
Использовать другой user, чтобы выполнить определенное действие на таблице Scott.EMP:
-- Update
update scott.EMP set sal=sal + 10 where job='MANAGER';
column username format a9
column owner format a5
column obj_name format a10
column action_name format a11
column sql_text format a40
-- Query view DBA_AUDIT_TRAIL:
select username, owner, obj_name,
action_name, sql_text from dba_audit_trail;
5. Set up Audit with XML parameter
Используя параметр audit_trail = xml, "аудит трейлы (audit trail)" будут сохранены в файле с форматом XML.
alter system set audit_trail=xml scope = spfile;
shutdown immediate;
startup
Файлы Audit обычно расположены в папке adump. Но чтобы знать точно, вы можете использовать следующую команду для проверки папки, содержащей файлы Audit.
show parameter audit_file_dest;
db12c_ora_2328_20171107022919280000831625.xml
<?xml version="1.0" encoding="UTF-8"?>
<Audit xmlns="http://xmlns.oracle.com/oracleas/schema/dbserver_audittrail-11_2.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.oracle.com/oracleas/schema/dbserver_audittrail-11_2.xsd">
<Version>11.2</Version>
<AuditRecord><Audit_Type>8</Audit_Type><EntryId>1</EntryId><Extended_Timestamp>2017-11-06T19:29:19.280000Z</Extended_Timestamp><DB_User>/</DB_User><OS_User>tran-pc\tran</OS_User><Userhost>WORKGROUP\TRAN-PC</Userhost><OS_Process>1848:2328</OS_Process><Terminal>TRAN-PC</Terminal><Instance_Number>0</Instance_Number><Returncode>0</Returncode><OSPrivilege>SYSDBA</OSPrivilege><DBID>1409002769</DBID>
<Sql_Text>CONNECT</Sql_Text>
</AuditRecord>
<AuditRecord><Audit_Type>4</Audit_Type><Session_Id>4294967295</Session_Id><StatementId>1</StatementId><EntryId>2</EntryId><Extended_Timestamp>2017-11-06T19:29:34.903000Z</Extended_Timestamp><DB_User>/</DB_User><Ext_Name>tran-pc\tran</Ext_Name><OS_User>tran-pc\tran</OS_User><Userhost>WORKGROUP\TRAN-PC</Userhost><OS_Process>1848:2328</OS_Process><Terminal>TRAN-PC</Terminal><Instance_Number>0</Instance_Number><Returncode>0</Returncode><OSPrivilege>SYSDBA</OSPrivilege><DBID>1409002769</DBID>
<Sql_Text>ALTER DATABASE OPEN</Sql_Text>
</AuditRecord>
6. Set up Audit with XML,EXTENDED parameter
Когда вы настраиваете аудит с параметром Audit_trail = xml,extended, полученный результат похож на использование параметра Audit_trail = xml, но в файлах XML добавит информацию про команды (statement), которые были выполнены.
alter system set audit_trail=os scope=spfile;
shutdown immediate;
startup
db12c_ora_3956_20171108021424022000979538.xml
<?xml version="1.0" encoding="UTF-8"?>
<Audit xmlns="http://xmlns.oracle.com/oracleas/schema/dbserver_audittrail-11_2.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.oracle.com/oracleas/schema/dbserver_audittrail-11_2.xsd">
<Version>11.2</Version>
<AuditRecord><Audit_Type>1</Audit_Type><Session_Id>1350961</Session_Id><StatementId>13</StatementId><EntryId>1</EntryId><Extended_Timestamp>2017-11-07T19:14:24.025000Z</Extended_Timestamp><DB_User>SCOTT</DB_User><OS_User>tran-pc\tran</OS_User><Userhost>WORKGROUP\TRAN-PC</Userhost><OS_Process>1856:3956</OS_Process><Terminal>TRAN-PC</Terminal><Instance_Number>0</Instance_Number><Object_Schema>SCOTT</Object_Schema><Object_Name>EMP</Object_Name><Action>6</Action><TransactionId>030017001E0E0000</TransactionId><Returncode>0</Returncode><Scn>17925302</Scn><DBID>1409002769</DBID>
<Sql_Text>Update Emp set Sal = Sal + 10 where job = 'MANAGER'
</Sql_Text>
</AuditRecord>
7. Просмотр связанных параметров
Когда режим аудита уже настроен для базы данных, вы можете проверить использованный параметр.
-- Show all parameter in database.
show parameter
show parameter audit_trail;
Проверить название папки, содержащей файлы Audit, которые будут созданы.
show parameter audit_file_dest;
Название папки содержащей файлы Audit сохранено в файле spfile<SID>.ora.
Изменить папку содержащую файлы Audit:
alter system set audit_file_dest='C:\newdir' SCOPE=SPFILE;
Руководства База данных Oracle
- Установите PL/SQL Developer в Windows
- Пример базы данных Oracle для обучения SQL
- Установите Oracle Database 11g в Windows
- Установите Oracle Database 12c в Windows
- Установить Oracle Client в Windows
- Создать Oracle SCOTT Schema
- Пример базы данных
- Структура базы данных и облачные функции в Oracle 12c
- Импорт и экспорт базы данных Oracle
- Строковые функции Oracle
- Разделить строку запятой и передать в пункт IN команды Select в Oracle
- Иерархические запросы в Oracle
- Руководство Oracle Database Link и Synonym
- Руководство Oracle PL/SQL
- XML-парсер для Oracle PL/SQL
- Стандартный аудит базы данных в Oracle
- Создание и управление Oracle Wallet
Show More