Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого...
Типы сооружений для обработки осадков: Септиками называются сооружения, в которых одновременно происходят осветление сточной жидкости...
Топ:
Выпускная квалификационная работа: Основная часть ВКР, как правило, состоит из двух-трех глав, каждая из которых, в свою очередь...
Основы обеспечения единства измерений: Обеспечение единства измерений - деятельность метрологических служб, направленная на достижение...
Оценка эффективности инструментов коммуникационной политики: Внешние коммуникации - обмен информацией между организацией и её внешней средой...
Интересное:
Влияние предпринимательской среды на эффективное функционирование предприятия: Предпринимательская среда – это совокупность внешних и внутренних факторов, оказывающих влияние на функционирование фирмы...
Мероприятия для защиты от морозного пучения грунтов: Инженерная защита от морозного (криогенного) пучения грунтов необходима для легких малоэтажных зданий и других сооружений...
Распространение рака на другие отдаленные от желудка органы: Характерных симптомов рака желудка не существует. Выраженные симптомы появляются, когда опухоль...
Дисциплины:
|
из
5.00
|
Заказать работу |
Содержание книги
Поиск на нашем сайте
|
|
|
|
Следующие указания могут использоваться в предложениях CREATE PROCEDURE и CREATE FUNCTION (версия 8.1):
OR REPLACE
Если подпрограмма уже существует, она будет перетранслирована с сохранением имеющихся свойств
AUTHID
Указывает на то, будет ли выполнение подпрограммы осуществляться с правами пользователя, подпрограмму создавшего (DEFINER), или пользователя, к программе обратившегося (CURRENT_USER). До версии Oracle 8.1 последним качеством обладали лишь подпрограммы из системных пакетов DBMS_SQL и DBMS_UTILITY. Пример использования указания см. ниже.
DETERMINISTIC
Сообщает компилятору, что значение функции определяется исключительно значениями ее параметров (то в теле не используются обращения к глобальным переменным пакета или к полям базы данных). В этом случае PL/SQL-машина может оптимизировать вычисление функции при повторяющихся вызовах, подменяя собственно вычисление обращениями к ранее вычисленным значениям, хранимым в пределах сеанса. Обязательный (а не оптимизационный) характер указание DETERMINISTIC имеет для возможности функции быть использованой в выражении для индекса, построенного на функции (function-based index) или же в SQL-формулировке материализованной выводимой таблицы, созданной в режимах REFRESH FAST или ENABLE QUERY REWRITE.
PARALLEL_ENABLED
Подсказка оптимизатору, что вычисление функции, если она вызвана в теле запроса SQL, может быть распараллелено в случае использования параллельной обработки запросов, то есть в ней нет обращений к переменным сеанса (например, глобальным переменным пакета).
PIPELINED
Может использоваться для описания табличной функции, то есть функции, принимающей на входе набор строк и выдающей в качестве результата тоже набор. Если такая функция странслирована с указанием PIPELINED, результат начинает выдаваться построчно по мере формирования в теле функции, а не после полного подсчета всего набора строк. При этом в теле функции строки созвращаются индивидуально оператором PIPE ROW имя_записи, а не RETURN результат, как обычно. Действует с версии 9. Примеры см. ниже.
AGGREGATE
Используется для написания собственных обобщающих (агрегатных) функций (вдобавок к стандартным MIN, MAX и т. д.). Действует с версии 9.
Хранимые подпрограммы и привилегии доступа к данным в БД
Две логики реализации привилегий доступа к данным БД
Задаются указанием AUTHID DEFINER, либо AUTHID CURRENT_USER. Содержательный пример использования логики «права доступа соответствуют правам обратившегося к подпрограмме»:
CREATE OR REPLACE FUNCTION countme (tabula IN VARCHAR2) RETURN NUMBER
AUTHID CURRENT_USER
AS
cnt NUMBER;
BEGIN
EXECUTE IMMEDIATE 'SELECT COUNT (*) FROM ' || tabula INTO cnt;
RETURN cnt;
END;
/
Упражнение. Создать функцию COUNTME как описано выше и проверить в работе из «своей» и «чужой» схемах. Заменить AUTHID CURRENT_USER на AUTHID DEFINER и повторить опыт.
Содержательный пример использования логики «права доступа соответствуют правам создателя подпрограммы» для получения полного имени трассировочного файла текущего сеанса:
CREATE OR REPLACE FUNCTION trace_file_name RETURN VARCHAR2 AUTHID DEFINER
IS
fname VARCHAR2(256);
BEGIN
SELECT param.value || '\' || i.instance_name || '_ora_' || p.spid || '.trc' INTO fname
FROM v$parameter param, v$instance i, v$process p, v$session s
WHERE s.sid = (SELECT sid FROM v$mystat WHERE ROWNUM = 1)
AND s.paddr = p.addr
AND param.name = 'user_dump_dest';
RETURN fname;
END;
/
(Здесь для пути к файлу употреблен разделитель файловой системы Windows).
Упражнение. Создать процедуру от имени SYSTEM (или SYS). Выдать в SQL*Plus:
GRANT EXECUTE ON trace_file_name TO PUBLIC;
CREATE PUBLIC SYNONYM trace_file_name FOR trace_file_name;
Проверить работу функции, включая для этого трассировку разных сеансов.
Обратите внимание, что «права создателя» дают возможность разрешать пользователям работать с таблицами БД, не предоставляя непосредственных привилегий доступа к ним. Таким образом они дают еще одну возможность регламентировать доступ к таблицам в БД в дополнение, например, к механизму views.
|
|
|
Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого...
Наброски и зарисовки растений, плодов, цветов: Освоить конструктивное построение структуры дерева через зарисовки отдельных деревьев, группы деревьев...
Своеобразие русской архитектуры: Основной материал – дерево – быстрота постройки, но недолговечность и необходимость деления...
Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰)...
© cyberpediasu.com 2017-2026 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!