- •Конспект лекций не официальный, возможны ошибки! Еремеев н.Б.
- •Распределенная база данных
- •Пример транзакции
- •Пример рбд
- •Прямые и косвенные соединения
- •Объекты: схемы и именования в рбд
- •Удаленные и распределенные предложения
- •Прозрачность в системе рбд
- •Архитектура рбд Oracle
- •Прозрачность в рбд. Прозрачность местоположения.
- •Прозрачность транзакций.
- •Прозрачность дублирования.
- •Разрешение имен в рбд
- •Снимки.
- •Двухфазный commit.
- •Фаза подготовки.
- •Фаза подтверждения
- •Создание точки подтверждения.
- •Проектирование распределенных приложений.
- •Уникальность имен.
- •Последовательности в распределенных транзакциях.
- •Обработка ошибок в удаленных процедурах.
- •Разрешение проблем распределенных транзакций
- •Снимки. Управление ими.
- •Спецификация определяющего запроса снимка (as ...).
- •Порядок создания снимков и их журналов:
- •Альтернативы снимкам.
- •Дублирование таблиц с помощью триггеров:
- •Создание триггера
- •Управление снимками
- •Создание снимков
- •Установление параметров памяти для снимков.
- •Конфигурирование автоматических обновлений
- •Ручное обновление снимков.
- •Связь между декларативными ограничениями и снимками.
- •Управление журналами снимков.
- •Внутренняя реализация журнала снимка.
- •Удаление журнала снимков.
- •Управление распределенными бд администратором.
- •Принципы простроения глобального имени бд:
- •Безопасность бд.
- •Характеристики и квоты различных табличных пространств.
- •Ресурсные лимиты и профили пользователей.
- •Лицензирование.
- •Привилегии и роли.
- •Защита таблиц.
- •Защита обзоров:
- •Усиление защиты таблиц через обзоры:
- •Защита процедур.
- •Табличные пространства и файлы данных Файлы данных
- •Табличное пространство
- •Объекты табличного пространства
- •Блок данных
- •Экстенты
- •Сегменты
- •Копирование и восстановление баз данных
- •Рекомендации по копированию баз данных.
- •Стратегии копирования Стратегии копирования в режиме no archive log
- •Стратегии копирования в режиме archive log
- •Процедуры копирования.
- •Процедура полного копирования базы данных
- •Восстановление
- •Опции предложений Audit и NoAudit.
- •Дополнительные опции по аудиту предложений:
- •Включение аудита
- •Выключение аудита.
- •Контролирование роста и размера аудиторского журнала.
- •Защита аудиторского журнала
- •Аудит с помощью триггеров
- •Поддержка национальных языков.
- •Лингвистическая сортировка.
- •Перекрытие стандартных умолчаний.
- •Форматы чисел и дат.
- •Объекты в Oracle.
- •Атрибуты
- •Сравнение объектов
- •Синтаксис объявления типов
- •Объявление и инициализация объектов
- •Вызов методов
- •Хранение объектов в бд
- •Использование оператора select
- •Вставка объектов
- •Обновление объектов
- •Удаление объектов
Защита таблиц.
Объектные привилегии для таблиц позволяют реализовать защиту на двух уровнях:
На уровне языка манипулирования данными (это привилегии Select, Delete, Insert, Update; привилегии Insert и Update можно назначать на конкретные столбцы таблицы; при добавлении записи ячейки столбцов, запрещенных для изменения, будут заполняться автоматически значениями по умолчанию или значением NULL).
На уровне Data Definition Language, что позволяет редактировать характеристики таблицы alter, references, index (references реализует контроль зависимости внешних ключей других таблиц от первичного ключа данной таблицы; index позволяет создавать индексы таблиц; alter позволяет изменять поля таблицы).
Защита обзоров:
привилегия для создания видов в своей схеме create view и в другой – create any view;
вам должны быть явно назначены объектные привилегии Insert, Select, Update, Delete на все базовые объекты обзора либо привилегии Insert any table, Select any table, Delete any table, Update any table;
дополнительно для передачи доступа другим пользователям вы должны обладать или объектными привилегиями на все базовые объекты обзора, или системные привилегии с опцией admin option.
Усиление защиты таблиц через обзоры:
обзор может предоставить доступ лишь к части столбцов базовой таблицы в случае, если обзор использует не все поля этой таблицы, поэтому пользователю достаточно предоставить привилегию Select View, а не Select Table;
вы можете обеспечить защиту информации через значения данных (при создании обзора задать с помощью опции WHERE критерий выборки; критерий можно задать со значением псевдостолбца user, который содержит иена пользователей, т.е. можно сделать обзор, вид которого различен и зависит от имени пользователя )
Защита процедур.
На процедуру можно назначить одну-единственную привилегию execute. Она позволяет выполнить эту процедуру с привилегиями ее владельца. В процедуре пользователю можно назначить отдельные привилегии, которых он лишится при завершении процедуры.
Для создания процедуры пользователь должен иметь привилегию Create Procedure. В том случае, если пользователь не является владельцем процедуры, то он к тому же еще должен обладать привилегией Alter Procedure.
Процедура обращается к таблицам, поэтому пользователь должен иметь права на работу с ними, причем эти привилегии должны быть предоставлены явно.
Перед выполнением процедуры всегда проверяются текущие привилегии владельца процедуры.
Аналогичные привилегии предоставляются и для пакетов. Особенностью их является то, что они назначаются на пакет в целом, т.е. на все процедуры в нем. Но существуют способы обойти это правило.
Роли.
Роли – это именованные группы объектов, которые назначаются пользователям или другим ролям.
Достоинства ролей:
сокращение времени на администрирование привилегий
динамическое управление привилегиями
выборочная доступность привилегий (роли, назначаемые пользователю, могут вклюачться и выключаться)
открытость для приложений (приложение можно спроектировать таким образом, чтобы оно само включало или выключало роль в зависимости от имени, под которым пользователь зарегистрировался)
защита, выбираемая приложением (в Oracle существует возможность назначения роли пароля)
Области применения роли:
управление привилегиями в приложении БД;
управление привилегиями в группе пользователей.
Роли приложений – это роль, которой назначены все привилегии, необходимые для выполнения данного приложения. Эту роль можно назначить другим ролям или конкретным пользователям.
Роли пользователей – это роль, созданная для группы пользователей БД, имеющих одинаковое требование к привилегиям (например, роль connect).
Особенности работы с ролями:
роли могут быть назначены объектные или системные привилегии;
роль может быть назначена другим ролям, но не может быть назначена самой себе; при назначении роли другой роли необходимо следить за тем, чтобы назначение не было цикличным;
любая роль может быть назначена любому пользователю БД;
каждая роль может быть в состоянии ON или OFF; домен защиты пользователя (совокупность всех привилегий пользователя) включает те привилегии, которые в данный момент включены для данного пользователя;
косвенно назначенную роль (роль, назначенную через другую роль) можно явно включать или выключать, но , если включить роль, содержащую другие роли, все косвенно назначенные роли неявно также включаться.
Отзывать и назначать роли могут:
те пользователи, которые имеют системную привилегию GRANT ANY ROLY (в его силах назначать и отзывать любую роль любому пользователю)
те пользователи, которые имеют роль с опцией Admin Option (в его силах назначать и отзывать эту роль другому пользователю или другой роли)
Замечание: все системные и объектные привилегии, позволяющие пользователю выполнять операции Data Manipulation Language, необходимые для выполнения предложения Data Definition language, считаются неприменимыми, если они получены через роль.
Предопределенные роли, которые определены в любой БД автоматически:
connect позволяет создавать и закрывать сеанс
resource позволяет создавать объекты в вашей схеме
dba привилегия администратора БД
export full database позволяет выполнять резервное копирование БД
import full database позволяет выполнять восстановление БД
