- •ВВЕДЕНИЕ
- •Лабораторная работа №1
- •Лабораторная работа №3-4
- •Создание первичного ключа двумя способами
- •Создание суррогатных ключей с помощью последовательностей
- •Ввод данных
- •Создание связей
- •Создание индексов
- •Изменение структуры таблиц, контрольные ограничения
- •Ограничения на модификацию столбцов таблиц
- •Представления
- •Контрольные задания к л.р. № 3-4
- •Лабораторная работа №5-6
- •Логика приложения
- •Обработка файлов PL/SQL
- •Хранимые процедуры
- •Хранимая процедура Customer_Insert
- •Листинг 1. Процедура CustomerInsert
- •Хранимая процедура NewCustomerWithTransaction
- •Задания к лабораторной работе.
- •Триггеры
- •Пример предваряющего триггера
- •Пример завершающего триггера
- •Обработка исключений
- •Словарь данных
- •Дополнительный материал для самостоятельного изучения
- •Управление параллельной обработкой
- •Уровень изоляции «завершенное чтение»
- •Уровень изоляции «сериализуемость»
- •Уровень изоляции «только чтение»
- •Дополнительные замечания о блокировках
- •Oracle и безопасность
обратится к сегментам отката и реконструирует строку в том виде, как она была до начала транзакции. На этом уровне изоляции запрещены вставка, обновление и удаление.
Дополнительные замечания о блокировках
Приложение может налагать блокировки явным образом, используя форму SELECT FOR UPDATE оператора SELECT. Это не рекомендуется делать, пока вы не узнаете о блокировках в Oracle гораздо больше, чем описано здесь.
Oracle использует разнообразные типы внутренних блокировок для обеспечения описанных здесь уровней изоляции. Существует, например, коллективная блокировка строки, а также несколько типов табличных блокировок. Есть и другие блокировки, используемые Oracle для своих нужд. Вы можете узнать больше об этих блокировках в документации по Oracle.
Чтобы снизить вероятность конфликта блокировок, Oracle не дает возможности распространять блокировки с одного уровня на другой. Строчные блокировки остаются строчными, даже если их насчитываются сотни на сотнях строк таблицы. Эта стратегия отличается от стратегии SQL Server, как вы узнаете из следующей главы. Oracle Corporation заявляет, что нерасширение блокировок является преимуществом, и возможно, что это так, особенно если учитывать архитектуру блокировок Oracle в целом.
Oracle и безопасность
Для добавления пользователя в базу данных администратор базы данных создает учетную запись с именем пользователя и паролем. Каждому пользователю присваивается профиль — характеристика предельных объемов системных ресурсов, которые могут быть выделены данному пользователю. Сюда входит лимит совокупного процессорного времени, предоставляемого в течение одного сеанса или за один вызов Oracle, и другие подобные ограничения.
В Oracle имеются системные и объектные привилегии. Системные привилегии — это права на выполнение общих задач, таких как SELECT ANY TABLE и UPDATE ANY TABLE. Объектные привилегии относятся к действиям с определенными элементами базы данных — таблицами,
54
представлениями и последовательностями. Для предоставления привилегий другому пользователю можно использовать оператор GRANT.
Роль в Oracle — это совокупность привилегий и других ролей. Одна и та же роль может быть присвоена многим пользователям, и один и тот же пользователь может иметь множество ролей. Примером роли в базе данных галереи View Ridge может служить MANAGER. Эта роль наделяется всеми системными и объектными привилегиями, необходимыми для выполнения менеджерских функций в галерее. Учетные записи пользователя с данной ролью присваиваются ряду сотрудников галереи View Ridge.
Более подробную информацию о безопасности в Oracle вы можете получить, поискав там документацию по темам пользователь, роли и привилегии.
55