- •Введение
- •1.5. Задание
- •1.6. Ход работы
- •1.6.1. Создание базы данных
- •1.6.2. Регистрация базы данных
- •1.6.3. Подключение к базе данных
- •1.6.4. Удаление базы данных
- •1.6.5. Извлечение метаданных
- •1.6.6. Резервное копирование и восстановление
- •1.7. Отчет о выполнении работы
- •1.8. Контрольные вопросы
- •2.4.2. Домены (Domains)
- •2.5. Задание
- •2.6. Ход работы
- •2.7. Отчет о выполнении работы
- •2.8. Контрольные вопросы
- •3.4.2. Индексы
- •3.5. Задание
- •3.6. Ход работы
- •3.7. Отчет о выполнении работы
- •3.8. Контрольные вопросы
- •4.4.1. Ограничение первичного ключа (Primary key)
- •4.4.2. Ограничения уникальности (Unique)
- •4.4.3. Ограничения внешнего ключа (Foreign keys)
- •4.4.4. Контрольные ограничения (Checks)
- •4.5. Задание
- •4.6. Ход работы
- •4.7. Отчет о выполнении работы
- •4.8. Контрольные вопросы
- •5.4.2. Бизнес-правила
- •5.4.3. Триггеры (Triggers)
- •5.4.4. Исключения (Exceptions) и обработка ошибок
- •5.6. Ход работы
- •5.7. Отчет о выполнении работы
- •5.8. Контрольные вопросы
- •6.4.2. Удаление существующих данных
- •6.4.3. Обновление существующих данных
- •6.5. Задание
- •6.6. Ход работы
- •6.7. Отчет о выполнении работы
- •6.8. Контрольные вопросы
- •7.5. Задание
- •7.6. Ход работы
- •7.7. Отчет о выполнении работы
- •7.8. Контрольные вопросы
- •8.4.2. Модифицируемые представления
- •8.5. Задание
- •8.6. Ход работы
- •8.7. Отчет о выполнении работы
- •8.8. Контрольные вопросы
- •9.4.2. Виды хранимых процедур в InterBase
- •Returns (
- •9.5. Задание
- •9.6. Ход работы
- •9.7. Отчет о выполнении работы
- •9.8. Контрольные вопросы
- •10.4.2. Создание динамической библиотеки с udf
- •Exports
- •Interface
- •10.4.4. Использование udf в базе данных
- •10.5. Задание
- •10.6. Ход работы
- •10.8. Контрольные вопросы
- •11.4.4. Права
11.4.4. Права
Права в InterBase – это разрешение какому-либо пользователю, хранимой процедуре или триггеру совершить какую-либо операцию над определенным объектом базы данных.
Для таблиц (TABLE), представлений (VIEW), а также их полей права выдаются на выполнение операций SELECT, DELETE, INSERT и UPDATE.
Для хранимых процедур права выдаются на операцию EXECUTE.
Права на объекты базы данных раздаются с помощью команды GRANT.
Примеры выдачи прав:
1. Выдать пользователю USER1 права на выборку из таблицы Table1:
GRANT SELECT ON Table1 TO USER1;
2. Выдать пользователю USER1 права на чтение и вставку данных, но не на изменение:
GRANT SELECT, INSERT ON Table1 TO USER1;
3. Выдать всех возможных прав на таблицу:
GRANT ALL ON Table1 TO USER1;
4. Выдать права сразу нескольким пользователям:
GRANT ALL ON Table1 TO USER1, USER2;
5. Выдать права сразу всем пользователям InterBase:
GRANT SELECT, INSERT ON Table1 TO PUBLIC;
6. Выдача права на чтение данных только из нескольких полей таблицы или представления:
GRANT SELECT ON Table1(Field1, Field3) TO USER1;
7. Выдача разрешения выполнять хранимую процедуру:
GRANT EXECUTE ON PROCEDURE Proc1 TO USER1;
8. Разрешение вызова процедуры Proc2 из процедуры Proc1 без наличия таких прав у пользователя, вызвавшего Proc1:
GRANT EXECUTE ON PROCEDURE Proc2 TO Proc1;
Чтобы уменьшить количество выдаваемых разрешений, пользователей объединяют в группы по принципу наличия у них одинаковых прав. Чтобы использовать роль необходимо выполнить следующие действия:
1. Создать роль.
2. Выдать этой роли все необходимые права.
3. Назначить конкретным пользователям эту роль.
4. При подсоединении к базе данных указать не только имя пользователя и пароль, но и роль, права которой будет иметь пользователь.
CREATE ROLE READER;
GRANT SELECT ON Table1 TO READER;
GRANT READER TO USER1;
Теперь пользователь USER1 должен при подключении к базе данных указать роль READER, и тогда он получит все права, назначенные для этой роли.
Раздавать права может только владелец объекта и пользователь SYSDBA. Владельцем объекта считается пользователь, который его создал. Чтобы не только выдать пользователю права на доступ к объекту, но и разрешить передачу этих прав другим пользователям, в конце обычной команды GRANT необходимо добавить WITH GRANT OPTIONS.
Для отмены прав используется команда REVOKE, синтаксис которой аналогичен команде GRANT.
Пример отмены у пользователя USER1 права на удаление из таблицы Table1:
REVOKE DELETE ON Table1 FROM USER1;
Задание
Лабораторную работу следует выполнять в следующем порядке:
1. Создать аналогично предыдущим лабораторным работам рабочую папку и назвать ее "ЛР11".
2. Скопировать в эту папку файл сценария, созданный при выполнении пре-дыдущей лабораторной работы.
3. Открыть в приложении "IB Expert" этот сценарий.
4. Исправить текст комментариев и сделать, чтобы база данных теперь соз-давалась в папке "ЛР11".
5. Добавить в конец сценария операторы создания не менее трех ролей и вы-дачи их необходимых прав. Каждый оператор должен иметь поясняющие комментарии. Назначить созданные роли имеющимся на сервере пользо-вателям.
6. Выполнить сценарий и сохранить его в рабочей папке.
7. Зарегистрировать созданную базу данных в программе "IB Expert" и под-ключиться к ней по имени пользователя, который не является хозяином базы данных или администратором сервера, с использованием каждой из ролей.
8. Проверить правильность функционирования ограничения доступа.
9. Создать в своей базе данных одну роль с названием "TestRole" в диалоговом режиме.
10. Выдать этой роли права на чтение данных из всех таблиц.
11. Создать в рабочей папке резервную копию базы данных.
12. Создать и сохранить в папке "ЛР11" файл с отчетом о выполнении лабора-торной работы, который должен называться "Отчет.doc".
Ход работы
Для создания роли в диалоговом режиме программы "IB Expert" необходимо выполнить следующие действия:
1. Подключиться к базе данных.
2. Выполнить команду "Database->New Role".
3. Ввести в единственном поле диалогового окна "Create Role" имя роли и нажать кнопку [OK].
Для выдачи роли или пользователю прав на выполнение операций с объектами базы данных служит окно "Grant Manager", открываемое по команде "Tools->Grant Manager".
Окно просмотра и изменения привилегий
Выданные привилегии на какую-либо операцию обозначаются зеленым кружком в соответствующей ячейке. Например, на рисунке для роли TestRole можно увидеть для таблицы Employee выданные права на выполнение опера-ций SELECT, UPDATE, DELETE и INSERT. Для остальных видимых в окне таблиц имеются права только на чтение.
Чтобы выдать или отменить право на выполнение какой-либо операции, надо всего лишь сделать двойной щелчок мышью в соответствующей ячейке.
Отчет о выполнении работы
Отчет о выполнении лабораторной работы необходимо оформить на листах формата A4.
Отчет должен содержать описание и результаты работы, представляемые в следующей последовательности:
1. Описание видов пользователей, которые будут работать с разрабатываемой базой данных, и необходимых им привилегий.
2. Распечатка сценария создания базы данных с комментариями, которые должны содержать сведения об авторе, дате создания, всех выполняемых действиях и пояснения к введенным вручную операторам создания ролей и выдачи прав.
3. Перечень файлов, полученных при выполнении лабораторной работы с указанием их имен, места расположения, даты изменения и размеров (сценарий, база данных, резервная копия базы данных, файл с отчетом).