Группы управления правами – роли
Если некоторому подмножеству команд предоставления прав (GRANT) дать имя, то вместо перечисления команд GRANT, можно, указав имя, сослаться на это множество. Такой подход позволяет одной командой передать пользователю права сразу на несколько объектов. Если пользователей много, то действия по отслеживанию всех их прав становятся достаточно громоздкими, и работа с такими множествами существенно ее облегчает. Особенно удобно то, что вместо предоставления прав на какой-либо новый объект или ограничения ранее предоставленных прав каждому из пользователей, можно провести такое изменение в именованном подмножестве, которым и является роль.
Процедура работы с ролями включает несколько этапов:
- создание роли (создание имени и пустого множества);
- формирование списка прав, связанных с ролью (включение элементов-прав во множество);
- формирование прав пользователей на основе ролей;
- связывание пользователей с ролями, т. е. передача им множества прав, описанных в роли.
Создание и удаление роли
Создание роли (объявление ее в БД) производится командой CREATE ROLE, которая имеет следующий синтаксис:
CREATE ROLE <имя роли>;
Удаление роли производится командой DROP ROLE, которая имеет следующий синтаксис:
DROP ROLE <имя роли>;
Формирование списка прав, связанных с ролью
Ролям могут быть предоставлены права также как и пользователям. Предоставление прав осуществляется командой GRANT (синтаксис команды приведен в лабораторной работе 13).
Одной командой GRANT права могут предоставляться как пользователям, так и ролям.
Например, создание новой роли и предоставление ей прав на выборку и добавление записей в таблице STUDENT выглядит так:
CREATE ROLE ROLE1;
GRANT SELECT, INSERT ON STUDENT TO ROLE1;
Формирование прав пользователей на основе ролей
Сами по себе роли носят вспомогательный характер. С БД работают пользователи, а не роли, и именно пользователям должны передаваться права на работу с объектами БД. Передача прав на объекты производится командой GRANT (синтаксис команды приведен в лабораторной работе 13). В части передачи пользователям прав, объявленных для ролей, он выглядит следующим образом:
GRANT<имя роли> TO {PUBLIC | <имя пользователя>} [WITH GRANT OPTION];
Например, передача пользователям прав, присвоенных ролям, выглядит так:
GRANT ROLE1 TO misha, masha, ivan_ivanivich;
Связывание пользователей с ролями
В InterBase с пользователем во время его сеанса работы с базой может быть связана только одна роль. В то же время команд GRANT на передачу прав от ролей пользователю может быть несколько.
Такой механизм позволяет динамически связывать набор прав пользователя при его конкретном соединении.
Таким образом, связь между ролью и пользователем осуществляется не при выдаче команды GRANT, а при соединении пользователя с базой.
Реализация такой связи осуществляется командой CONNECT.
Базовый синтаксис команды CONNECT:
CONNECT USER‘пользователь’ PASSWORD‘пароль’ ROLE‘роль’;
Таким образом, один и тот же пользователь при входе в систему может получать различные наборы прав.
Практическая часть
Порядок выполнения работы
1. Открыть БД, созданную на лабораторной работе 13.
2. Создать обзоры для каждого из запросов лабораторной работы 8 в зависимости от варианта.
3. Указать, какие из обзоров являются обновляемыми. Для тех, которые являются обновляемыми, написать по одному запросу на обновление.
4. Создать две роли. Делегировать первой роли следующие права:
- права на удаление, добавление и выборку данных из нескольких таблиц, с указанием полей, которые разрешено изменять;
- права только на выборку из всех таблиц.
5. Создать трех пользователей.
6. Делегировать первому пользователю все права первой роли; второму пользователю – права второй роли; права третьего пользователя определять при соединении с БД.
7. Научиться пользоваться командой, которая ликвидирует права роли и удаляет сами роли.
8. Сохранить резервную копию БД на съемном носителе для дальнейшего использования.
Контрольные вопросы
1. Что такое обзор?
2. Как можно изменить обзор?
3. Можно ли вставить значения в таблицы, которые не указаны в обзоре?
Рекомендуемая литература
1. Буч, Г. Язык UML : руководство пользователя / Г. Буч, Д. Рамбо, А. Джекобсон. – М. : ДМК-Пресс, 2001.
2. Скляр, А. Я. Введение в InterBase / А. Я. Скляр. – М. : Горячая линия – Телеком, 2002.
3. Фаронов, В. В. Программирование баз данных в Delphi 7 : учеб. курс / В. В. Фаронов. – СПб. : Питер, 2004. – 459 с.
4. Харитонова, И. А. Microsoft Access 2000 : разработка приложений / И. А. Харитонова, В. Д. Михеева. – СПб. : БХВ – Санкт-Петербург, 2000. – 832 с.
5. Хомоненко, А. Д. Базы данных : учебник для высш. учеб. заведений / А. Д. Хомоненко, В. М. Цыганков, М. Г. Мальцев ; под ред. проф. А. Д. Хомоненко. – 3-е изд., доп. и перераб. – СПб. : КОРОНА-принт, 2003. – 672 с.
Содержание
Предисловие . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . | |
Указания по выполнению лабораторных работ . . . . . . . . . . . . . | |
Лабораторная работа 1 Проектирование базы данных . . . . . . . . . . . . . . . . . . . . . . . . . | |
Лабораторная работа 2 Среда Microsoft Access. Разработка структуры БД. Создание и модификация таблиц . . . . . . . . . . . . . . . . . . . . . . . . . . . . | |
Лабораторная работа 3 Разработка и редактирование простых запросов . . . . . . . . . | |
Лабораторная работа 4 Основные приемы работы с формами БД MS Access . . . . . | |
Лабораторная работа 5 Отчеты в MS Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . | |
Лабораторная работа 6 Макросы в MS Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . | |
Лабораторная работа 7 Разработка структуры БД . . . . . . . . . . . . . . . . . . . . . . . . . . . . . | |
Лабораторная работа 8 Запросы на выборки и группировку с использованием SELECT-выражений . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . | |
Лабораторная работа 9 Подзапросы. Объединение и соединение запросов . . . . . . . . | |
Лабораторная работа 10 Запросы на добавление, обновление и удаление данных | |
Лабораторная работа 11 Администрирование БД InterBase. Создание доменов и таблиц . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . | |
Лабораторная работа 12 Индексы. Исключения. Копирование и восстановление БД | |
Лабораторная работа 13 Триггеры. Управление доступом к данным . . . . . . . . . . . . . | |
Лабораторная работа 14 Создание и модификация обзоров. Группы управления правами . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . | |
Рекомендуемая литература . . . . . . . . . . . . . . . . . . . . . . . . . . . |
Учебное издание
Системы управления
Базами данных
Лабораторный практикум
для студентов специальности 1-08 01 01-07
«Профессиональное обучение. (Информатика)»
С о с т а в и т е л и:
Лазицкас Екатерина Александровна
Специан Светлана Евгеньевна
Зав. ред.-издат. отд. О. П. Козельская
Редактор Г. Л. Говор
Корректор Н. Г. Михайлова
Компьютерная верстка А. П. Пучек
План издания 2006 г. (поз. 44)
Изд. лиц. № 02330/0131735 от 17.02.2004.
Подписано в печать 15.09.2006. Формат 60´84 1/16.
Бумага писчая. Гарнитура Таймс. Печать ризографическая.
Усл. печ. л. 5,11. Уч.-изд. л. 3,61. Тираж 100 экз. Заказ 223.
Издатель и полиграфическое исполнение
Учреждение образования
«Минский государственный высший радиотехнический колледж»
220005, г. Минск, пр-т Независимости, 62.