Контроль за работой баз данных, или аудит, может потребоваться для сбора статистики за действиями пользователей системы. Кроме того, аудит может быть полезен для обнаружения нарушений защиты базы данных. При выполнении аудита происходит дополнительное расходование ресурсов. В связи с этим перед выполнением аудита целесообразно настроить его параметры в соответствии с целями аудита, так чтобы сократить непроизводительное расходование системных ресурсов.
Перечислим для примера некоторые возможные варианты проведения аудита: аудит конкретных операторов SQL с привязкой или без привязки к конкретным объектам; аудит применения системных привилегий; для каждого назначенного параметра аудита генерация записи аудита для случаев успешного, неуспешного или любого выполнения контролируемых операторов; установление параметров аудита для всех или для отдельных пользователей базы данных; генерация записи аудита при каждом выполнении контролируемого оператора или один раз в течение сеанса.
Записи аудита хранятся в журнале аудита, или контрольном журнале. В каждой записи содержится контролируемая информация: выполненная операция, выполнивший ее пользователь, дата и время выполнения. Для хранения записей аудита может использоваться журнал аудита базы данных либо операционной системы, под управлением которой работает СУБД.
Пример. Задание параметров проведения аудита.
Пусть требуется задать проведение аудита с фиксацией все успешных попыток применения системной привилегии CREATE ANY TABLE пользователями SERG и JOHN, при этом нужно генерировать запись аудита всякий раз при выполнении условий проведений аудита. Возможное решение имеет вид:
AUDIT CREATE ANY TABLE
BY serg, john
BY ACCESS
WHENEVER SUCCESSFUL;
При необходимости отключения аудита достаточно выполнить соответствующий заданным условиям проведения аудита оператор SQL NOAUDIT. В рассматриваемом примере нужно задать оператор вида:
NOAUDIT CREATE ANY TABLE
BY serg, john;
PL/SQL
PL/SQL (Programming Language SQL) представляет собой процедурный язык программирования, который встроен в большинство продуктов СУБД Oracle. С помощью PL/SQL можно разрабатывать программы, в которых содержатся операторы SQL, осуществляющие доступ к информации в базах данных, и операторы языка PL/SQL, осуществляющие управление выполнением этих программ. Кроме того, с использованием PL/SQL можно создавать процедуры, функции и модули, а также другие программные единицы, выполняющие доступ к базам данных.
Как и любой другой процедурный язык программирования PL/SQL содержит операторы определения данных, управления выполнением программ, обработки данных, комментарии и другие. Охарактеризуем кратко основные конструкции языка PL/SQL.