Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Системные и объектные привилегии СУБД Oracle.

PARALLEL_MIN_TIME_THRESHOLD | REDO_TRANSPORT_USER | RESULT_CACHE_REMOTE_EXPIRATION | SHARED_SERVERS | Процесс-слушатель Oracle и его основные параметры. Сетевые настройки Oracle. | Метод аутентификации | Типы данных базы данных Oracle. | Изменение физических атрибутов таблицы | Удаление таблиц | Создание индексов связанных с ограничением целостности |


Читайте также:
  1. Внутрисистемные и сопряженные рефлексы
  2. Понятия базы данных и экземпляра базы данных. Запуск и останов экземпляра базы данных Oracle. Параметры экземпляра. Программная реализация экземпляра.
  3. Привилегированны акции. Привилегии на право голоса. Льготные привилегии тип А и тип Б.
  4. Процесс-слушатель Oracle и его основные параметры. Сетевые настройки Oracle.
  5. Процессы. Контекст процесса. Состояния процессов и переходы между ними. Системные вызовы для обеспечения жизненного цикла процесса
  6. РАЗДЕЛ 1. СИСТЕМНЫЕ ПРЕДСТАВЛЕНИЯ ОБ ОРГАНИЗАЦИИ
  7. СИСТЕМНЫЕ ВАСКУЛИТЫ

Привилегии выдается при помощи Grant и забираются при помощи Revoke.

Различают три вида привилегий:

-Объектные (Object privileges) – это разрешения на объекты схемы, такие как таблицы, представления, последовательности, пакеты. Для использования объектов схемы принадлежащих другому пользователю, необходимы привилегии на этот объект.

-Системные (System privileges) – это разрешения на операции уровня базы данных, например подключение к базе данных, создание пользователей, внесение изменений в конфигурацию базы данных.

-Ролевые (Role privileges) – это объектные и системные привилегии, которые пользователь получает как роль. Роли – это возможность для администрирования групп или привилегий.

Объектные привилегии позволяют выдать разрешения на объекты принадлежащие другому пользователю. В общем, системные привилегии позволяют выполнять DDL предложения, например CREATE, ALTER и DROP. Кроме того, создание пользователей, управление табличными пространствами, установка соединений с базой данных. Различие заключается в том, что системные привилегии позволяют манипулировать базой данных в целом, а объектные только конкретными объектами БД.

Системные привилегии выдает администратор, объектные – владелец объекта.

Примеры системных привилегий:

CREATE TABLE

CREATE ANY TABLE

CREATE VIEW

CREATE SYNONYM

CREATE CLUSTER

CREATE SEQUENCE

CREATE ANY INDEX

SELECT ANY DICTINARY

EXECUTE PROCEDURE

Объектные привилегии:

Привилегия Выдается на
SELECT Таблицы, представления, последовательности, синонимы
INSERT Таблицы, представления, синонимы
UPDATE Таблицы, представления, синонимы
DELETE Таблицы, представления, синонимы
ALTER Таблицы, последовательности
EXECUTE Процедуры, функции, пакеты, синонимы
REFERENCE Таблицы

 

22. Аудит в СУБД Oracle: типы аудита, принцип применения.

23. Язык PL/SQL: основные характеристики. Структура программы. Анонимные блоки. Применение переменных связи. Локальные процедуры и функции.

PL/SQL (Procedural Language / Structured Query Language) — язык программирования, процедурное расширение языка SQL, разработанное корпорацией Oracle. Базируется на языке Ада.

Не чувствителен к регистру.

PL/SQL даёт возможность использовать переменные, операторы, массивы, курсоры и исключения. Начиная с версии 8 доступна и объектно-ориентированная модель.

Стандартный SQL является специализированным декларативным языком программирования. На язык наложены определённые ограничения, такие как, например, отсутствие прямой поддержки циклов. PL/SQL же, как полный по Тьюрингу язык, позволяет разработчикам обрабатывать данные в реляционной базе, используя императивный стиль программирования. Операторы SQL могут быть легко вызваны непосредственно из PL/SQL-процедуры, функции или из триггера (иногда с некоторыми ограничениями).

Характеристика языка PL/SQL:

- процедурное расширение языка SQL;

- содержит элементы объектно-ориентированного программирования;

- блоки, процедуры, функции, пакеты, объектные типы;

- интегрирован с базой данных Oracle;

- интерпретация (режим по умолчанию):

- компиляция (промежуточный код на C и конечный объектный код процессора) дает выигрыш в скорости выполнения до 30%;

- среда выполнения: SQL*Plus, другие пакеты, сервер.

 

Программа на PL/SQL состоит из блоков (анонимных или поименованных). Блок может содержать вложенные блоки, называемые иногда подблоками. Общая форма PL/SQL-блока:

DECLARE

-- Описания блока, переменные, типы, курсоры и т. п. (опционально)

BEGIN

-- Непосредственно код программы

EXCEPTION

-- Обработка исключений (опционально)

END;

/* Многострочные

комментарии… */

-- Однострочный комментарий

АБ (Анонимный блок) - совокупность операторов plsql, выполняемых единовременно. Простейший АБ:

BEGIN

NULL;

END;

Наименование «анонимный» получил из-за того, что в отличие от процедур и функций не имеет имени, не предназначен для длительного хранения в БД и повторного вызова.

Использование связанных переменных

Как при использовании курсоров, так и при использовании указателей на курсоры рекомендуется при формировании запросов не включать туда конкретные константы (кроме тех случаев, когда эти константы действительно будут сохраняться во всех подобных запросах). Связано это с тем, что при последовательном выполнении двух запросов, отличающихся только константой (например, SELECT ename FROM employees WHERE id = 20 и SELECT ename FROM employees WHERE id = 21), СУБД производит разбор каждого запроса отдельно, хотя на самом деле план выполнения у таких запросов общий. Такие повторные разборы могут существенно снизить производительность приложения.

Для предотвращения лишних разборов следует использовать связанные переменные (англ. bind variables), то есть переменные непосредственно в теле запроса, значения которых будут подставляться только при открытии курсора для запроса. Связанные переменные обозначаются именем, предварённым символом двоеточия. При открытии курсора значения переменных указываются с помощью предложения USING.

При первом выполнении функции, приведённой ниже, запрос будет разобран в СУБД, для него будет создан план выполнения (это будет происходить сравнительно долго). При последующих выполнениях функции будет использоваться уже созданный план выполнения, и запрос будет быстро возвращать значения.

FUNCTION get_employee_name (empid INTEGER, empcity VARCHAR2) RETURN VARCHAR2 IS TYPE GenericCursor IS REF CURSOR; c1 GenericCursor; empname VARCHAR2(200);BEGIN OPEN c1 FOR 'SELECT ename FROM employees WHERE id =:id AND city =:city' USING empid, empcity; -- цикл не используется, так как запрос вернёт не более одной строки FETCH c1 INTO empname; CLOSE c1; RETURN empname;END get_employee_name;

 

Локальные процедуры и функции PL/SQL

Это процедуры и функции создаваемые и используемые внутри других plsql-блоков, например в секции declare анонимного блока (или после is/as в случае фн. и процедур) они объявляются, а в теле используются. Эти фн. процедуры не доступны извне и поэтому и называются локальными. Условно говоря они не создаются (create), а объявляются и имеют область в рамках данного блока PL/SQL.

DECLARE

X NUMBER(3):=4;

Y NUMBER(3):=5;

Z NUMBER(3);

PROCEDURE SUMMOD5 (X1 NUMBER, X2 NUMBER, X3 OUT NUMBER)

IS

Z NUMBER(3):=5;

BEGIN

X3:=MOD(X1+X2,Z);

END SUMMOD5;

BEGIN

SUMMOD5(X, Y, Z);

DBMS_OUTPUT.PUT_LINE('Z = '||Z);

EXCEPTION

WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE(SQLERRM);

END;

 

 

24. Язык PL/SQL: типы данных, основные операции, константы, инструкция %TYPE.

Типы данных PL/SQL (не путать с типами данных базы данных):

a. скалярные (Scalar);

b. ссылочные (Reference);

c. составные (Composite);

d. большие объекты (LOB).

Скалярные типы данных можно разбить на семейства:

- символ/строка;

- число;

- булев;

- дата/время.

 

Числовые типы данных:

 

 

Булев тип

 

 

Дата и время

 

 

Типы данных для хранения символьной информации в базе данных Oracle и программе на PL/SQL.

Char, varchar2, nchar, nvarchar.

Типы данных для хранения числовых данных в базе данных Oracle и программе на PL/SQL.

Number, integer | binary_float, binary_double, binary_integer, pls_integer, natural, positive, signtype.

 

Конста́нта — способ адресования данных, изменение которых рассматриваемой программой не предполагается или запрещается.

Константы целесообразно использовать в тех случаях, когда после инициализации значение некой переменной гарантированно не должно изменяться.

DECLARE

N1 CONSTANT NUMBER(5):=5;

C1 CONSTANT VARCHAR2(5):='ABC';

C2 CONSTANT CHAR(5):='ABC';

BEGIN

DBMS_OUTPUT.PUT_LINE('N1 = '||N1);

DBMS_OUTPUT.PUT_LINE('C1 = '||C1);

DBMS_OUTPUT.PUT_LINE('C2 = '||C2);

--N1:=10;

EXCEPTION

WHEN OTHERS

THEN DBMS_OUTPUT.PUT_LINE('ERROR = '||SQLERRM);

END;

Опция %TYPE при объявлении переменной в PLSQL позволяет явно не указывать тип переменной, а сослаться на тип используемый таким то столбцом таблицы указываемых до ключевого слова.

DECLARE

SUBJECT JEU_12.SUBJECT.SUBJECT%TYPE;

PULPIT JEU_12.SUBJECT.PULPIT%TYPE;…

 

25. Язык PL/SQL: записи, инструкция %ROWTYPE. Вложенные записи.

Запись - структура данных, представляющая собой совокупность нескольких переменных (различных типов в общем случае), позволяющая хранить и обрабатывать информацию из всех столбцов одной строки некой таблицы. Можно использовать для различных данных, привязка к структуре определенной таблицы необязательна. Создавать можно ссылаясь на структуру какой-то таблицы (audrec auditorium%rowtype), или же вручную объявляя все поля записи (TYPE ADDRESS IS RECORD

(ADDRESS1 VARCHAR2(100),

ADDRESS2 VARCHAR2(100),

ADDRESS3 VARCHAR2(100)

);).

При работе с записями часто употребляется понятие неявного курсора и точной выборки. Неявный курсор – селект-запрос, возвращающий ровно одну строку (точная выборка) и помещающий ее в указанную запись. В дальнейшем с полями данной записи можно работать по-отдельности.

Опция %rowtype объявляет переменную (структуру), имеющую такой же тип вложенных элементов, как и строки задаваемой таблицы.

Вложенные записи – записи, содержащие внутри себя другие записи в качестве элементов.

 

26. Язык PL/SQL: операторы управления, операторы цикла.


Дата добавления: 2015-11-16; просмотров: 177 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Последовательность СУБД Oracle и ее параметры.| Операторы цикла в PLSQL

mybiblioteka.su - 2015-2024 год. (0.014 сек.)