Базы данных Oracle - статьи

         

Расширенный аудит


Запись аудита на показывает действие (оператор SELECT) и объект, над которым было выполнено это действие (таблица ACCOUNTS). Однако она не показывает сам SQL-оператор, который выполнил пользователь SCOTT. В механизме аудита есть также средства расширения его функциональных возможностей, позволяющие записывать текст этих SQL-операторов. Для их включения установите в файле параметров инициализации следующий параметр и перезапустите экземпляр сервера базы данных.

AUDIT_TRAIL = XML, EXTENDED

После включения расширенного аудита пользователь SCOTT выполнил другой оператор SELECT:

SELECT * FROM accounts WHERE accno = :i;

Сгенерированный XML-файл показан на . Он содержит два дополнительных элемента, которые не входили в файл обычного аудита, показанный на :

  • <Sql_Bind>#1(3):107</Sql_Bind>
и

  • <Sql_Text>select * from bank.accounts where accno = :i</Sql_Text>.

<?xml version="1.0" encoding="UTF-8" ?> <Audit xmlns="http://xmlns.oracle.com/oracleas/schema/dbserver_audittrail-10_2.xsd" xmlns: xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.oracle.com/ oracleas/schema/dbserver_audittrail-10_2.xsd"> <Version>10.2</Version> <AuditRecord>

<Audit_Type>1</Audit_Type> <Session_Id>108844</Session_Id> <StatementId>10</StatementId> <EntryId>1</EntryId> <Extended_Timestamp>2005-10-10T18:26:18.720548</Extended_Timestamp> <DB_User>SCOTT</DB_User> <OS_User>oracle</OS_User> <Userhost>prolin1</Userhost> <OS_Process>22584</OS_Process> <Terminal>pts/3</Terminal> <Instance_Number>0</Instance_Number> <Object_Schema>BANK</Object_Schema> <Object_Name>ACCOUNTS</Object_Name> <Action>103</Action> <Returncode>0</Returncode> <Scn>6447496045</Scn> <SesActions>---------S------</SesActions> <Sql_Bind>#1(3):107</Sql_Bind> <Sql_Text>select * from bank.accounts where accno = :i</Sql_Text> </AuditRecord>


</Audit>

<Sql_Bind>#1(3):107</Sql_Bind> <Sql_Text>select * from bank.accounts where accno = :i</Sql_Text>

Листинг 2. Расширенный XML-формат.

Тег <Sql_Text> показывает текст фактического SQL-оператора, выполненного пользователем SCOTT. В этом конкретном SQL-операторе есть переменная связывания (:i). Значение этой переменной показывается в теге <Sql_Bind> в формате #ПозицияПеременной(ДлинаЗначенияПеременной): ЗначениеПеременнойСвязывания. показывает, что есть только одна переменная связывания (#1), длина ее значения равна трем символам (3), а значение – 107. Использование расширенного XML-аудита позволяет регистрировать SQL-операторы и использованные значения переменных связывания.

Обратите внимание, расширенный XML-аудит зафиксировал только тот SQL-оператор, который пользователь SCOTT выполнил после установки параметра AUDIT_TRAIL=XML, EXTENDED и перезапуска экземпляра сервера базы данных. Результаты XML-аудита, показанные на листингах и , получены в разных сеансах.


Содержание раздела