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

2. Практическая часть

Порядок выполнения работы

1. Открыть БД, разработанную в лабораторной работе 7, создать необходимые индексы для таблиц (в соответствии с вариантом).

2. В зависимости от варианта задания предусмотреть возможные ошибки пользователей при вводе и редактировании данных, создав для каждой из возможных ошибок исключения.

3. Скопировать БД для сохранения ее на дискете.

4. Восстановить БД.

5. Сохранить резервную копию БД на съемном носителе для дальнейшего использования.

Контрольные вопросы

1. Назовите виды индексов, опишите их особенности.

2. В каких случаях нельзя удалить индекс и исключение?

3. Для чего применяется копирование и восстановление БД?

Лабораторная работа 13

Триггеры. Управление доступом к данным

Цель работы: формирование умений и навыков создания и модификации триггеров; формирование знаний и умений управления доступом к данным.

1. Краткие теоретические сведения

1.1. Управление доступом к данным

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

Управление доступом к данным включает управление списком пользователей и правами их доступа к данным и процедурам.

1.2. Создание списка пользователей

Создание списка пользователей производится при помощи утилиты IBConsole. Для того чтобы создать пользователя, необходимо зарегистрировать сервер, выполнив команду меню SERVER USER SECURITY.

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

З а м е ч а н и е! Не рекомендуется удаление пользователя SYSDBA. Удаление данного пользователя связано с необходимостью переустановки InterBase для восстановления базы поддержания секретности isc4.gdb.

1.3. Задание прав

Создание нового пользователя само по себе не дает ему никаких прав на доступ к объектам БД.

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

Для доступа к объектам БД пользователь нуждается в правах, перечень которых приведен в табл. 13.1.

Т а б л и ц а 13.1

Права пользователей

Право

Описание

ALL

Делегируются все права

SELECT

Дает право выбирать строки из таблицы (представления)

DELETE

Дает право удалять строки из таблицы (представления)

INSERT

Дает право добавлять строки в таблицу (представления)

UPDATE

Дает право изменять строки в таблице (представление). Может быть ограничено определенным набором столбцов

REFERENCES

Дает право ссылаться при работе с внешним ключом на специфицированные столбцы (как минимум это должны быть все столбцы внешнего ключа)

EXECUTE

Дает право выполнять хранимую процедуру

Пользователи могут получить разрешение на дальнейшую передачу прав (тех, которыми владеют сами), которое задается опцией WITH GRANT OPTION.

Синтаксис команды GRANT следующий:

GRANT {ALL [PRIVILEGES] | SELECT | DELETE | INSERT | UPDATE (<список столбцов>) | REFERENCES (<список столбцов>)}

ON [TABLE] {<имя таблицы> | <имя обзора>}

TO {<объект> | <список пользователей>}

/ EXECUTE ON PROCEDURE <имя процедуры>

TO {<объект> | <список пользователей>};

В табл. 13.2 приведен перечень возможных значений опции <объект>.

Т а б л и ц а 13.2

Возможные значения опции <объект>

Объект

Описание

PROCEDURE

<имя процедуры>

Права передаются процедуре <имя процедуры>, которая должна существовать и храниться в БД

TRIGGER

<имя триггера>

Права передаются триггеру <имя триггера>, который должен существовать и храниться в БД

VIEW

<имя обзора>

Права передаются обзору <имя обзора>, который должен существовать и храниться в БД

PUBLIC

Права передаются всем пользователям. Причем данная опция распространяется только на пользователей, а не на объекты БД

Например, передача всех прав для работы с таблицей STUDENT пользователю NIK, который может также передавать права другим пользователям, будет выглядеть так:

GRANT ALL ON STUDENT TO NIK WITH GRANT OPTION;