Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Laby / ЛР4 / БД_4 (25-11-2008)

.doc
Скачиваний:
21
Добавлен:
12.04.2015
Размер:
47.1 Кб
Скачать

Методические указания к лабораторной работе №4

по курсу "Базы данных"

АДМИНИСТРИРОВАНИЕ БАЗЫ ДАННЫХ

(не дописанная)

Цель лабораторной работы: ознакомиться с организацией системы безопасности СУБД; научиться регистрировать новых пользователей базы данных и управлять правами доступа к объектам БД; изучить синтаксис операторов SQL для выдачи и отмены прав (GRANT и REVOKE).

Планируемое время выполнения: 1 пара (2 академических часа).

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

  1. Изучить теоретическую часть.

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

  3. Задать права доступа к объектам базы данных для каждого пользователя или группы пользователей.

Содержание отчета

  1. Задание на разработку базы данных.

  2. Список пользователей и/или групп пользователей с указанием действий, которые они будут выполнять с базой данных.

  3. Права доступа к объектам базы данных

  4. Текст SQL-запросов для регистрации пользователей и групп пользователей, выдачи им прав доступа.

ТЕОРЕТИЧЕСКАЯ ЧАСТЬ

Защищаемые объекты и права доступа

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

Привилегиями (privileges) называются действия, которые пользователь имеет прав выполнять над объектом базы данных. Базовыми являются пять привилегий, которые относятся к таблицам, представлениям и столбцам таблиц:

  • SELECT (чтение) – разрешает извлекать данные из таблицы, представления или столбца;

  • INSERT (вставка) – разрешает добавлять новые строки в таблицу или представление;

  • DELETE (удаление) – разрешает удалять строки из таблицы или представления;

  • UPDATE (обновление) – разрешает изменять значения ячеек существующей строки. Применим к таблицам, представлениям и отдельным столбцам.

  • REFERENCES (ссылка) – разрешает ссылки на столбец таблицы из других таблиц. Ссылка организуется через FOREIGN KEY или через CHECK-проверки. В СУБД, не поддерживающих данный тип прав, эта задача решается через выдачу права SELECT на ключевой столбец.

Эти привилегии реализованы в большинстве СУБД.

К доменам, пользовательским наборам символов, порядкам сортировки и правилам конвертирования текста применяется привилегия USAGE. Например, имея привилегию USAGE на некоторый домен, можно определить новую таблицу и указать этот домен в качестве типа данных какого-нибудь из ее столбцов.

К хранимым процедурам применятся право EXECUTE (разрешение выполнения).

Владельцем объекта (object owner) является пользователь, создавший этот объект (таблицу, представление, хранимую процедуру). Владелец таблицы и хранимой процедуры автоматически получает все возможные права на нее. Другие пользователи базы данных первоначально не имеют на этот объект никаких привилегий. Чтобы они получили доступ, владелец или администратор БД должен предоставить им соответствующие привилегии с помощью оператора GRANT. Иная ситуация с представлениями. Пользователь, создавший представление оператором CREATE VIEW, автоматически получает привилегию SELECT на это представление, а привилегии INSERT, DELETE, UPDATE определяются правами данного пользователя по отношению к таблицам, из которых представление формировалось.

Операторы GRANT и REVOKE

Оператор GRANT выдает права доступа к объектам базы данных. Вот его синтаксис по стандарту SQL2:

GRANT <список_прав_доступа> ON Имя_объекта

ТО <список_имен_пользователей> [WITH GRANT OPTION]

<список_прав_доступа> = <права_на_таблицу_или_представление> |

<права_на_столбцы_таблицы_или_представления> |

<права_на_таблицу_или_представление> =

SELECT|INSERT|DELETE|UPDATE|REFERENCES [,…] | ALL PRIVILEGES

<права_на_столбцы_таблицы_или_представления> =

INSERT|UPDATE|REFERENCES [,…](Список_столбцов)

Лишение прав производится оператором REVOKE.

Соседние файлы в папке ЛР4