Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка по БД.doc
Скачиваний:
13
Добавлен:
26.09.2019
Размер:
2.17 Mб
Скачать

1.4. Обновление данных в обзоре с конструкцией

WITH CHECK OPTION

Если обзор создан с опцией проверки (WITH CHECK OPTION), то при попытке обновления или вставки данных проверяется, удовлетворяют ли новые данные условиям выборки, заданным конструкцией WHERE. Данные будут записаны только при выполнении этих условий.

З а м е ч а н и я:

1. Опция применима только для обновляемых обзоров.

2. Значения могут быть вставлены через обзор только для тех столбцов, которые входят в обзор. Для столбцов таблицы, не вошедших в обзор, InterBase устанавливает значения NULL.

НЕЛЬЗЯ непосредственно изменить обзор. Сначала его нужно удалить, а затем создать заново командой CREATE VIEW.

Удаление обзора означает удаление из БД его описания, но не самих данных. Удаление обзора разрешено пользователю, создавшему обзор, при выполнении условия: обзор не должен использоваться другим обзором, хранимой процедурой или ограничением целостности (CHECK-конструкцией). В этом случает нужно предварительно удалить все объекты, использующие данный обзор.

Синтаксис команды удаления обзора:

DROP VIEW <имя обзора>;

1.5. Группы управления правами – роли

Если некоторому подмножеству команд предоставления прав (GRANT) дать имя, то вместо перечисления команд GRANT, можно, указав имя, сослаться на это множество. Такой подход позволяет одной командой передать пользователю права сразу на несколько объектов. Если пользователей много, то действия по отслеживанию всех их прав становятся достаточно громоздкими, и работа с такими множествами существенно ее облегчает. Особенно удобно то, что вместо предоставления прав на какой-либо новый объект или ограничения ранее предоставленных прав каждому из пользователей, можно провести такое изменение в именованном подмножестве, которым и является роль.

Процедура работы с ролями включает несколько этапов:

- создание роли (создание имени и пустого множества);

- формирование списка прав, связанных с ролью (включение элементов-прав во множество);

- формирование прав пользователей на основе ролей;

- связывание пользователей с ролями, т. е. передача им множества прав, описанных в роли.

1.6. Создание и удаление роли

Создание роли (объявление ее в БД) производится командой CREATE ROLE, которая имеет следующий синтаксис:

CREATE ROLE <имя роли>;

Удаление роли производится командой DROP ROLE, которая имеет следующий синтаксис:

DROP ROLE <имя роли>;

1.7. Формирование списка прав, связанных с ролью

Ролям могут быть предоставлены права также как и пользователям. Предоставление прав осуществляется командой GRANT (синтаксис команды приведен в лабораторной работе 13).

Одной командой GRANT права могут предоставляться как пользователям, так и ролям.

Например, создание новой роли и предоставление ей прав на выборку и добавление записей в таблице STUDENT выглядит так:

CREATE ROLE ROLE1;

GRANT SELECT, INSERT ON STUDENT TO ROLE1;

1.8. Формирование прав пользователей на основе ролей

Сами по себе роли носят вспомогательный характер. С БД работают пользователи, а не роли, и именно пользователям должны передаваться права на работу с объектами БД. Передача прав на объекты производится командой GRANT (синтаксис команды приведен в лабораторной работе 13). В части передачи пользователям прав, объявленных для ролей, он выглядит следующим образом:

GRANT <имя роли> TO {PUBLIC | <имя пользователя>} [WITH GRANT OPTION];

Например, передача пользователям прав, присвоенных ролям, выглядит так:

GRANT ROLE1 TO misha, masha, ivan_ivanivich;