Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Плещёв БД 2013-03-15.doc
Скачиваний:
3
Добавлен:
01.04.2025
Размер:
12.65 Mб
Скачать

5.3.4.2. Привилегии

Привилегии (полномочия) ‑ разрешение пользователю выпо­л­нять определен­ные действия. Основой системы разграничения доступа в СУБД является реализация принципа минимальных привилегий. Все привилегии могут быть разделены на системные/объектные (разрешение на выполнение оп­реде­ленного действия в системе/над объектом).

Системные привилегии предоставляются оператором:

Grant <привилегии> to {<пользователь> | public} [with admin option]

Привилегии в основном можно представить в виде комбинации слов:

{create | alter | drop | select | update} [any] {cluster | procedure | index | role | sequence | snapshot | table | trigger | database | profile | session | system | tablespace | user | view}

Пример. Grant select any table to Plehev;

Определение привилегий доступа к объектам:

Grant {<привилегии> | all privileges}

[<столбец>, …] on [<схема>.]<объект>

to {<пользователь> | public } [with grant option]

<привилегии> ‑ привилегии доступа к объекту: Alter (изменение струк­ту­ры), Execute (выполнение), Create (создание), Select (выборка), Insert (вста­­в­ка), Update (модификация), References (право на определение внеш­ней ссылки целостности объекта), Delete (удаление).

All privileges ‑ предоставление всех привилегий.

Public ‑ предоставление доступа всем пользователям.

With grant option - право передавать полномочия другим пользователям.

Пример. Grant select on Sotrudniki to Plehev.

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

Revoke {<системная привилегия>} From { <пользователь> | public}

Отмена привилегий доступа к объекту:

Revoke {<привилегии> | all [privileges]} On [<схема>.]<объект>

From {<пользователь> | public} [cascade constraints]

Пример. revoke create any table from Plehev.

5.4. PL/SQL

5.4.1. Правила написания программы

PL/SQL ‑ процедурное расширение языка SQL фирмы Oracle. Прог­рам­ма на PL/SQL оформляется следующим образом:

[<<метка с именем блока >>]

[Declare

<описание типов, переменных и констант> ]

Begin

<операторы обработки данных и вложенные блоки (тело блока)>

[Exeption

<Операторы обработки исключительных ситуаций> ]

End [<метка блока>];

Любой оператор заканчивается символом “;”. Комментарий разме­ща­ется между символами “/*” и “*/” или указывается в конце строки после двух знаков “минус” (для динамически обрабатываемых предкомпилято­ром Oracle блоков этот вид комментария запрещен). Идентификатор начи­на­ется с буквы, может содер­жать латинские буквы, цифры и символы “$”, “_”, “#”. Длина идентификатора ограничена 30 символами. Можно объ­явить одинаковые идентификаторы в двух разных блоках. Объекты, пред­­став­­ленные эти­ми идентификаторами, различны. PL/SQL нечувствителен к регистру, кроме стро­ко­вых переменных и констант. В одной строке может быть несколько опера­то­ров, и один опе­ра­тор может занимать несколько строк. Если иден­ти­фикатор совпадает с зарезервированным словом, то он заключается в кавычки.

Строковые констан­ты зак­лючаются в апострофы. Два соседних апострофа внутри строковой константы воспринимаются как один.

Константы True, False и Null обозначают “Истину”, “Ложь” и “Пустое зна­че­ние” соответственно.

Метки заключаются в двойные угловые скобки.

Константа объявляется в виде:

<имя константы> constant <тип> := <значение>

Пример. credit_limit constant real := 5000.00;