- •1.Основные понятия и определения курса. Традиционные файловые системы.
- •5 История развития субд Oracle.
- •6 Общие сведения об инструкциях sql. Правила именования таблиц и столбцов
- •7 Общие сведения о dml.
- •8 Общий синтаксис инструкции select
- •9 Предложения select и from. Предикаты и вычисляемые столбцы (пример).
- •10 Предложение where и классификация условий отбора (привести примеры).
- •11 Составные условия отбора. Влияние значений null на результат отбора.
- •12 Многотабличные запросы и их особенности (привести пример).
- •13 Операторы комбинирования результирующих таблиц в многотабличных запросах (привести примеры).
- •14 Предложение group by. Статистические (агрегативные) функции в sql (примеры).
- •15 Условия отбора групп (предложение having)
- •16 Сортировка результатов запроса (предложение order by).
- •17 Подзапросы: типы, примеры, правила и ограничения, ключевые слова any, all, exist, not exist
- •18 Добавление данных (инструкции insert, merge).
- •19 Модификация и удаление данных (инструкции update, merge и delete).
- •20 Общие сведения о ddl.
- •21 Типы данных sql.
- •22 Создание таблиц (инструкция create table).
- •23 Изменение определения и удаление таблицы (инструкции alter ,drop table).
- •24 Создание псевдонимов и индексов таблиц (инструкции create/drop alias, create/drop index)
- •25 Создание представлений (инструкция create view). Преимущества и недостатки использования, основные виды
- •26 Проблемы обновления и удаление представлений.
- •27 Принципы защиты данных в sql: аутентификация пользователей, защищаемые объекты, использование привилегий и другие возможности обеспечения безопасности
- •28 Аутентификация. Создание и изменение пользователей. Аутентификация пользователей
- •29 Профили. Создание, изменение, удаление.
- •30 Привилегии. Системные привилегии.
- •31 Привилегии доступа к объектам схемы. Правила предоставления привилегий
- •32 Предоставление и отмена привилегий (инструкция grant и revoke).
- •33 Работа с привилегиями при помощи ролей. Системные роли, определение, изменение, удаление ролей
- •34 Аудит. Типы и применение аудита.
- •Типы аудита. В диспетчере авторизации можно использовать два вида аудита: аудит времени выполнения и аудит изменения хранилища данных авторизации. Аудит времени выполнения
- •Аудит изменений хранилища данных авторизации
- •35 Условия целостности данных
- •36 Правила добавления и удаления. Проблемы ссылочных циклов
- •37 Понятие транзакций. Инструкции обработки транзакций (commit и rollback)
- •38 Модель транзакции в стандарте ansi/iso
- •39 Журнал транзакций. Проблемы обработки параллельных транзакций.
- •40 Блокировки транзакций: уровни и виды, тупиковые ситуации.
- •41 Преимущества pl/sql и общие сведения о структуре pl/sql программ
- •42 Классификация блоков pl/sql.
- •43 Управление блоками в sql*Plus.
- •44 Лексические единицы pl/sql
- •45 Синтаксис объявления переменных, инициализация.
- •46 Скалярные типы pl/sql.
- •48 Коллекции (составные типы pl/sql).
- •Методы, применяемые при работе с коллекциями
- •Инициализация коллекций
- •50 Массовое связывание.
- •51 Преобразование типов данных. Область действия и область видимости переменных. Выражения и операции.
- •52 Управляющие структуры pl/sql. Область действия счетчика цикла, ограничения безусловных переходов условное управление
- •Итерационное управление
- •53 Понятие транзакции и виды блокировок Oracle
- •54 Операторы управления транзакциями в Oracle (commit, rollback, savepoint, set transaction, lock table).
- •55 Многоверсионная модель согласованности Oracle.
- •56 Автономные транзакции. Понятие прагмы.
- •57 Записи pl/sql. Использование %rowtype
- •58 Курсорные типы, переменные и выражения. Виды и назначение курсоров.
- •59 Обработка явных и неявных курсоров.
- •61 Динамический sql: использование пакета dbms_sql.
- •62 Алгоритма обработки данных в dbms_sql
- •63 Встроенный динамический sql (nds). (операторы execute immediate, open … for).
- •65 Классификация и определение программных единиц. Общие ключевые слова.
- •66 Создание и использование процедур
- •Вызов процедур и функций
- •67 Создание и использование (вызов) функций.
- •Вызов процедур и функций
- •68 Структура и определение пакета.
- •69 Триггеры бд: виды и создание
- •70 Последовательность событий и предикаты триггеров.
- •71 Пакет dbms_output.
- •72 Пакет utl_file(файловый ввод/вывод)
- •Безопасность
- •73 Пакет dbms_pipe: посылка и получение сообщений
- •74 Пакет dbms_pipe: создание программных каналов и управление ими.
- •75 Архитектура odbc и коды возврата
- •76 Основной алгоритм программ odbc. Инициализация и завершение.
- •77 Выполнение операторов: функции управления каталогом.
- •78 Непосредственное и подготавливаемое выполнение.
- •79 Выборка результатов.
- •80 Подробный алгоритм использования odbc в прикладных программах.
31 Привилегии доступа к объектам схемы. Правила предоставления привилегий
Существуют привилегии двух типов:
-системные привилегии(system privileges), контролирующие общий доступ к базе данных;
-объектные привилегии(object privileges), контролирующие доступ к конкретным объектам базы данных.
Для управления привилегиями определены следующие правила:
-объект принадлежит пользователю, его создавшему (если синтаксисом не указано создание объекта -другого пользователя, конечно, при соответствующих полномочиях);
-владелец объекта, согласно стандарту, может изменять привилегии своего объекта (в коммерческих СУБД, таких как Oracle, уровни полномочий представляют собой более сложную иерархию);
-объектная привилегия всегда соотносится с конкретным объектом, а системная - с объектами вообще.
Язык SQL поддерживает следующие привилегии:
ALTER- позволяет выполнять операторALTER TABLE;
SELECT- позволяет выполнять оператор запроса;
INSERT- позволяет выполнять добавление строк в таблицу;
UPDATE- позволяет изменять значения во всей таблице или только в некоторых столбцах;
DELETE- позволяет удалять строки из таблицы;
REFERENCES- позволяет устанавливать внешний ключ с использованием в качестве родительского ключа любых столбцов таблицы или только некоторых из них;
INDEX- позволяет создавать индексы (не входит в стандарт SQL-92);
DROP- позволяет удалять таблицу из схемы базы данных.
32 Предоставление и отмена привилегий (инструкция grant и revoke).
Предоставление привилегий (инструкция GRANT)

Когда он предоставляет привилегии другим пользователям, они могут пользоваться объектом, но не могут передавать эти привилегии кому-то еще. Таким образом, владелец объекта сохраняет строгий контроль над тем, кому какие формы доступа к объекту разрешены.
Но бывают ситуации, когда владелец может захотеть передать другим пользователям право предоставлять привилегии на свой объект.
grant select on orders to secretary with grant option;
Отмена привилегий(REVOKE)

Посредством инструкции REVOKE можно отобрать только те привилегии, которые вы предоставили ранее некоторому пользователю. У него могут быть также привилегии, предоставленные другими пользователями; ваша инструкция REVOKE не влияет на эти привилегии.
При использовании инструкции REVOKEследует учитывать, что если два разных пользователя предоставляют третьему пользователю одну и ту же привилегию на один и тот же объект, а затем один из них отменяет привилегию, то вторая привилегия остается в силе и по-прежнему разрешает пользователю доступ к объекту. Такую ситуацию в литературе иногда называютперекрытием привилегий.
33 Работа с привилегиями при помощи ролей. Системные роли, определение, изменение, удаление ролей
Вполне возможно, что для использования обычного приложения баз данных придется назначать множество системных привилегий. Когда с приложением работает множество пользователей, управление привилегиями может быстро превратиться в достаточно трудную задачу, так как нужно будет предоставлять привилегии каждому пользователю. Чтобы упростить процесс обеспечения безопасности системы некоторые СУБД в частности ORACLEпозволяют воспользоваться ролями.Роль– это совокупность системных привилегий, предоставляемых пользователям и другим ролям. Надо отметить, что СУБД может предоставлять пользователям некоторое количествопредварительно установленных ролей.
CONNECT– основная роль пользователей, которая позволяет соединяться с базой данных, а затем создавать таблицы, представления, синонимы и последовательности в соответствующей схеме.
RESOURCE– роль, предназначенная для разработчиков приложений; помимо таблиц, представлений и т. д. позволяет создавать процедуры, функции, триггеры и объектные типы в соответствующей схеме.
DBA– роль, предназначенная для администраторов; позволяет выполнять любые операции с базой данных, так как включает все системные привилегии. Кроме того, пользователь, которому предоставлена рольDBA, может предоставлять любые системные привилегии любому другому пользователю базы данных и любой роли.
SELECT_CATALOG_ROLE– роль, позволяющая обращаться с запросами к представлениям словаря данных, созданным администратором.
DELETE_CATALOG_ROLE– роль, позволяющая удалять записи из журнала аудита базы данных.
Роли, определяемые пользователями
Для базы данных ORACLEможно создавать любое требуемое количество ролей. После создания роли нужно построить для нее набор привилегий, предоставив ей привилегии и другие роли. Затем надо предоставить эту роль пользователям, чтобы они имели привилегии, необходимые им для работы.
Разрешение и запрещение ролей
Пользователь, которому предоставлена роль, не всегда имеет доступ к ее привилегиям. В ORACLEприложения могут разрешать и запрещать роли для любого пользователя. После того как приложениеразрешаетроль для пользователя, ему становятся доступны ее привилегии. И, соответственно, когда приложениезапрещаетроль для пользователя, он более не имеет доступа к ее привилегиям.
Возможность динамически управлять набором привилегий позволяет приложениям обеспечивать постоянную корректность наборов привилегий пользователей во время работы с данным приложением. Например, когда пользователь запускает приложение по вводу заказов, с помощью SQL-команды SET ROLE это приложение разрешает ему применять для работы роль ORDER_ENTRY (см. пример). Когда пользователь завершает свою работу, приложение запрещает для него эту роль, и он не может применять привилегии приложения по вводу заказов во время работы с другим приложением.
