Конспект лекций по дисциплине «Сетевые базы данных», страница 16

    [CASCADE  CONSTRAINTS]

В примере у пользователя Tom изымается право на вставку данных в таблицу Tab1, при этом право на чтение данных из таблицы (предоставленное в предыдущем примере) у него остается.

REVOKE insert ON tab1  FROM  tom;

            4.5. Роли

Роль – это совокупность системных и/или объектных привилегий, сгруппированных под одним именем, чтобы облегчить предоставление и отмену этих привилегий. Как только пользователю будет дана роль, все привилегии, связанные с ней, будут унаследованы пользователем.

Роли могут быть назначены не только пользователю Oracle, но и другим ролям, а также предопределенному имени пользователя PUBLIC.

4.5.1. Создание ролей

Для создания роли используется команда CREATE ROLE. Имена ролей не должны конфликтовать с именами пользователей, уже созданных в базе данных. Синтаксис команды CREATE ROLE имеет следующий вид:

CREATE ROLE имя_роли

[ NOT IDENTIFIED  | IDENTIFIED {BY пароль | EXTERNALLY} ]

В показанном ниже примере создается роль под именем salperson.

CREATE ROLE salperson

Следующий пример показывает создание роли под именем manager с паролем secret, который потребуется указать при включении роли командой SET ROLE.

CREATE ROLE manager IDENTIFIED BY secret ;

4.5.2. Изменение ролей

Для изменения ранее созданной роли выполняется команда ALTER ROLE, имеющая следующий синтаксис

ALTER ROLE имя_роли

[ NOT IDENTIFIED  | IDENTIFIED {BY пароль | EXTERNALLY} ]

Например, отменить пароль у роли manager можно такой командой

ALTER ROLE manager  NOT  IDENTIFIED

4.5.3. Удаление ролей

Удаление роли выполняется командой DROP ROLE имя_роли. При удалении роли не требуется отменять ее для всех пользователей или ролей, которым она была предоставлена Это будет выполнено автоматически.

4.5.4. Предоставление привилегий ролям

Предоставление ролям привилегий выполняется аналогично тому, как привилегии предоставляются пользователю – командой GRANT. Только вместо имени пользователя используется имя роли. Например:

GRANT create table, create procedure TO manager

GRANT select, update ON delegates TO manager

4.5.5. Удаление привилегий у ролей

Удаление привилегий выполняется командой REVOKE. Например:

REVOKE create procedure FROM manager

4.5.6. Предоставление ролей

Роли предоставляются (назначается) пользователям или другим ролям с использованием того же варианта команды  GRANT, который используется для предоставления системных привилегий (см. п. 4.3). В следующем примере показано, как роль salperson назначается пользователю Tom:

GRANT  salperson  TO  Tom

4.5.6. Отмена ролей

Синтаксис команды REVOKE для отмены ролей похож на синтаксис команды для отмены системных привилегий (см. п. 4.3). Это видно из следующего примера:

REVOKE salperson  FROM  Tom

5. Язык PL/SQL

PL/SQL – это язык программирования Oracle, представляющий собой расширение языка структурированных запросов SQL. Язык SQL был разработан для записи команд взаимодействия с базой данных. Однако, в SQL недостает многих операторов, которые обычно можно встретить в распространенных языках программирования. Например, как выполнить команду только в том случае, если будет истинно некоторое условие? Или как можно выполнять данное действие несколько раз, т.е. в цикле? Язык PL/SQL содержит конструкции именно такого типа. Вместе с SQL он предоставляет возможность писать довольно сложные программы для взаимодействия с базами данных.

5.1. Блочная структура программ