- •Конспект лекций не официальный, возможны ошибки! Еремеев н.Б.
- •Распределенная база данных
- •Пример транзакции
- •Пример рбд
- •Прямые и косвенные соединения
- •Объекты: схемы и именования в рбд
- •Удаленные и распределенные предложения
- •Прозрачность в системе рбд
- •Архитектура рбд Oracle
- •Прозрачность в рбд. Прозрачность местоположения.
- •Прозрачность транзакций.
- •Прозрачность дублирования.
- •Разрешение имен в рбд
- •Снимки.
- •Двухфазный commit.
- •Фаза подготовки.
- •Фаза подтверждения
- •Создание точки подтверждения.
- •Проектирование распределенных приложений.
- •Уникальность имен.
- •Последовательности в распределенных транзакциях.
- •Обработка ошибок в удаленных процедурах.
- •Разрешение проблем распределенных транзакций
- •Снимки. Управление ими.
- •Спецификация определяющего запроса снимка (as ...).
- •Порядок создания снимков и их журналов:
- •Альтернативы снимкам.
- •Дублирование таблиц с помощью триггеров:
- •Создание триггера
- •Управление снимками
- •Создание снимков
- •Установление параметров памяти для снимков.
- •Конфигурирование автоматических обновлений
- •Ручное обновление снимков.
- •Связь между декларативными ограничениями и снимками.
- •Управление журналами снимков.
- •Внутренняя реализация журнала снимка.
- •Удаление журнала снимков.
- •Управление распределенными бд администратором.
- •Принципы простроения глобального имени бд:
- •Безопасность бд.
- •Характеристики и квоты различных табличных пространств.
- •Ресурсные лимиты и профили пользователей.
- •Лицензирование.
- •Привилегии и роли.
- •Защита таблиц.
- •Защита обзоров:
- •Усиление защиты таблиц через обзоры:
- •Защита процедур.
- •Табличные пространства и файлы данных Файлы данных
- •Табличное пространство
- •Объекты табличного пространства
- •Блок данных
- •Экстенты
- •Сегменты
- •Копирование и восстановление баз данных
- •Рекомендации по копированию баз данных.
- •Стратегии копирования Стратегии копирования в режиме no archive log
- •Стратегии копирования в режиме archive log
- •Процедуры копирования.
- •Процедура полного копирования базы данных
- •Восстановление
- •Опции предложений Audit и NoAudit.
- •Дополнительные опции по аудиту предложений:
- •Включение аудита
- •Выключение аудита.
- •Контролирование роста и размера аудиторского журнала.
- •Защита аудиторского журнала
- •Аудит с помощью триггеров
- •Поддержка национальных языков.
- •Лингвистическая сортировка.
- •Перекрытие стандартных умолчаний.
- •Форматы чисел и дат.
- •Объекты в Oracle.
- •Атрибуты
- •Сравнение объектов
- •Синтаксис объявления типов
- •Объявление и инициализация объектов
- •Вызов методов
- •Хранение объектов в бд
- •Использование оператора select
- •Вставка объектов
- •Обновление объектов
- •Удаление объектов
Включение аудита
Существует много вариантов включения аудита.
Audit Session – данная опция включает аудит успешных и неуспешных попыток соединений пользователей. Вы можете конкретизировать, для каких пользователей будет включен аудит.
Примеры:
AUDIT SESSION By Scott, O157;
Нас могут не интересовать опции успешной регистрации. Для определения безуспешных регистраций нужно использовать:
AUDIT SESSION By Scott, O157 WHENEVER NOT SUCCESSFUL; - в этом случае будет происходить регистрация пользователей Scott, O157 в том случае, когда операции были неуспешными.
AUDIT DELETE ANY TABLE; - данная команда аудита указывает, что будут регистрироваться все предложения по удалению таблиц.
AUDIT SELECT TABLE, INSERT TABLE, DLETE TABLE, EXECUTE ANY PROCEDURE BY ACCESS WHENEVER NOT SUCCESSFUL; - аудит всех безуспешных предложений SELECT, INSERT, DELETE по всем таблицам и безуспешного использования системной привилегии EXECUTE ANY PROCEDURE всеми пользователями БД.
Примеры использования аудита на объекты:
AUDIT DELETE on Emp; - включается аудит на все попытки удаления в таблице Emp для всех пользователей
AUDIT SELECT, INSERT, DELETE on Jward.Dept BY ACCESS WHENEVER SUCCESSFUL; - аудит для всех успешных предложений SELECT, INSERT, DELETE по таблице Dept, принадлежащей пользователю Jward.
AUDIT SELECT on DEFAULT WHENEVER SUCCESSFUL; - установка умалчиваемой опции аудитинга для всех успешных предложений SELECT.
Выключение аудита.
Для выключения аудита используется команда NOAUDIT. Синтаксис аналогичен синтаксису команды включения аудита. Кроме того, существует специальное слово ALL, позволяющее выключить все опции аудитинга предложений.
Примеры выключения аудита:
NOAUDIT ALL by Scott; - выключает весь аудит для пользователя Scott.
NOAUDIT ALL on DEFAULT; - отключение умалчиваемых опций.
Сам механизм аудита включается/выключается не в БД, а установкой специального параметра AUDIT_TRAIL в файле инициализации (для WINDOWS NT – в реестре). Этот параметр может принимать 3 значения:
DB – включает аудитинг базы данных и направляет все аудиторские записи в аудиторский журнал базы данных;
OS – включает аудитинг БД и направляет все аудиторские записи в аудиторский журнал операционной системы;
NONE – выключает аудитинг (используется по умолчанию).
Контролирование роста и размера аудиторского журнала.
Если журнал переполняется, то всем пользователям будет выдано соответствующее сообщение.
Аудиторский журнал может расти в зависимости от числа включенных опций аудитинга и от частоты выполнения отслеживаемых операций.
Для контроля за ростом аудиторского журнала используются следующие методы:
Включение/выключение аудита базы данных.
Разборчивость в отношении включенных опций аудитинга.
Жесткий контроль возможности осуществления аудитинга объектов
всеми объектами владеет администратор защиты, а системная привилегия AUDIT ANY никогда не назначается другим пользователям. Альтернативно все объекты отслеживаемой системы могут принадлежать схеме, которая принадлежит пользователю, не имеющему привилегии CREATE SESSION.
все объекты, содержащиеся в схемах, не соответствуют реальным пользователям БД, т.е. привилегия CREATE SESSION не назначена пользователям и администратор защиты является единственным лицом, имеющим системную привилегию AUDIT ANY.
Максимальный размер аудиторского журнала БД определяется во время создания БД. По умолчанию в этой таблице может быть размещено 99 экстентов размером по 10Кб (для версии Oracle 7.3).
Примеры:
DELETE from SYS.AUD$; - удаление всех записей из аудиторского журнала
DELETE from SYS.AUD$ WHERE obj$name=' EMP' ; - удаление всех записей, связанных с объектом EMP (EMP – обязательно писать большими буквами).
Если вам нужна информация о аудиторском журнале, то перед очищением журнала ее можно переписать в другую таблицу командой INSERT INTO.
Удалять записи из аудиторского журнала может лишь пользователь SYS, т.е. имеющий привилегию DELETE ANY TABLE.
Если аудиторский журнал переполнен, а включена опция аудита, то все обычные пользователи не смогут регистрироваться. Зарегистрироваться сможет только пользователь SYS ( его операции не отслеживаются).
По мере заполнения таблицы экстенты начинают распределяться. В итоге будут заполнены все экстенты. После удаления всех записей из администраторского журнала, экстенты все равно остаются распределенными за таблицей SYS.AUD$ и никакая другая таблица ими воспользоваться не сможет.
Для разрешения этой проблемы нужно выполнить следующие операции:
Скопировать информацию аудиторского журнала в другую таблицу БД.
Соединиться с БД как Internal.
Выполнить операцию усечения таблицы SYS.AUD$ с помощью команды TRUNCATE (эта команда удаляет кроме записей еще и распределенные экстенты).
Перезагрузить сохраненные записи в журнал.
