Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
SUBD_shpory.docx
Скачиваний:
5
Добавлен:
25.09.2019
Размер:
724.44 Кб
Скачать
  1. Хранимые процедуры и функции: назначение, принцип применения, необходимые привилегии, операторы создания, опция authid current_user/definer, объектная привилегия execute, представления словаря.

Хранимые процедуры - (именованный PL/SQL-блок)группа связанных между собой операторов sql или функций и сохраняемой в откомпилированном виде.

EXECUTE - Отменяется право запускать хранимую процедуру, пользовательскую функцию или пакет.

AUTHID — как будет выполняться программа и как должны разрешаться ссылки на объекты: DEFINER — в соответствии с привилегиями владельца объекта, либо CURRENT_USER — в соответствии с привилегиями пользователя вызывающего программу. По умолчанию считается DEFINER.

USER_PROCEDURES, USER_SOURCE

grant create procedure to kvcore

  1. Пакеты: назначение, принцип применения, необходимые привилегии, операторы создания, опция authid current_user/definer, объектная привилегия execute, представления словаря.

Пакет – совокупность некоторых функций и процедур, объявленных под общим именем.

EXECUTE - Отменяется право запускать хранимую процедуру, пользовательскую функцию или пакет.

AUTHID — как будет выполняться программа и как должны разрешаться ссылки на объекты: DEFINER — в соответствии с привилегиями владельца объекта, либо CURRENT_USER — в соответствии с привилегиями пользователя вызывающего программу. По умолчанию считается DEFINER.

USER_PROCEDURES, USER_SOURCE

grant create procedure to kvcore

  1. Триггеры: DLL/DML – триггеры, BEFORE/AFTER-триггеры, триггеры уровней строки и оператора, необходимые привилегии, операторы создания, предикаты INSERTING, UPDATATING, DELETING, INSTEAD OF-триггеры, NEW/OLD-префиксы, системные (DDL) триггеры.

Триггер базы данных: особый вид именованных блоков PL/QL (особый вид процедур) которые срабатывают (firing – стрелять, запускать) по запускающему их событию.

Триггер базы данных: выполняется под правами создателя триггера.

Запускающие события: DML – события, системные события.

Применение триггеров:

для реализации сложных ограничений целостности базы данных;

для аудита (контроля хранимой и изменяемой информации – дельного аудита);

для автоматического оповещения программ о произошедших событиях;

Типы триггеров: DML – триггеры, триггеры замещения instead-of), системные триггеры.

Привилегии на триггер: назначаются напрямую USER у, а не через роль.

CREATE TRIGGER (создавать, удалять изменять в своей подсхеме);

CREATE ANY TRIGGER (создать любой триггер в любой схеме, кроме SYS, не рекомендуется для словаря, не разрешает менять текст триггера);

ALTER ANY TRIGGER (разрешать, запрещать, изменять, компилировать, любые, кроме SYS-триггеров, триггеры) ;

DROP ANY TRIGGER (удалять любой триггер, кроме SYS-триггеров);

ADMINISTER DATABASE TRIGGER (создавать, изменять, удалять системные триггеры, должен иметь привилегию CREATE TRIGGER или CREATE ANY TRIGGER).

DML-события: оператор: INSERT, DELETE, UPDAТE.

DML-триггеры: только для таблиц, для представлений нельзя

DML-триггеры: момент времени: AFTER (после события), BEFFORE (до события). BEFORE – до записи в журнал, AFTER – после записи в журнал.

DML-триггеры: уровень: FOR EACH ROW (для каждой строки), ПО УМОЛЧАНИЮ (операторный уровень).

DML-триггеры: всего типов триггеров = 28 = (7 комбинаций операторов)× 2 момента × 2 уровня.

DML-триггеры: для таблицы может быть любое количество.

DML-триггер – это часть транзакции: не может выдавать COMMIT/ROLBACK (может только, если в теле триггера автономная транзакция),может выдавать RAISE_SPPLICATION_ERROR.

Системные триггеры: BEFORE, AFTER (момент выполнения)

Системные триггеры: DATABASE, SCHEMA (уровень триггера)

Системные триггеры: 1)серверные события; 2) DDL-события; 3)события сбора статистики; 4) события аудита; 5) DCL-события.

Системные триггеры: все кроме LOGOFF работают в режиме автофиксации; LOGOFF входит в транзакцию отключения.

Системный триггер: может генерировать исключение RAISE.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]