Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Labwork Formulation.doc
Скачиваний:
0
Добавлен:
20.07.2019
Размер:
82.94 Кб
Скачать

Международный Университет природы, общества и человека «Дубна»

БАЗЫ ДАННЫХ

Доцент кафедры САУ Васильев П.М.

Руководство по выполнению лабораторной работы №2

«Data Control Language»

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

Общие рекомендации к выполнению лабораторной работы 3

Цель работы 3

Рассматриваемые вопросы 3

Исходные данные 3

Результат 3

Защита лабораторной работы 3

1. Предоставление объектных привилегий без права делегирования 4

Шаг 1. Исходные данные 4

Шаг 2. Предоставление объектных привилегий 4

Шаг 3. Попытка делегирования объектных привилегий 4

2. Предоставление объектных привилегий с правом делегирования 5

Шаг 1. Предоставление объектной привилегии 5

Шаг 2. Делегирование привилегии 5

3. Изъятие объектных привилегий 5

4. Использование ролей 6

Шаг 1. Создание роли 6

Шаг 2. Передача роли 6

Шаг 3. Дальнейшая передача роли 6

Шаг 4. Изменение роли 6

Шаг 5. Изъятие роли 6

Шаг 1. Предоставление необходимых привилегий 8

Шаг 2. Независимое изменение объекта в параллельных транзакциях 8

Шаг 3. Зависимое изменение объекта в параллельных транзакциях 9

Общие рекомендации к выполнению лабораторной работы

Цель работы

Получение навыков использования DCL для управления доступом к объектам в рамках изолированных транзакций.

Рассматриваемые вопросы

1. Предоставление и изъятие объектных привилегий.

2. Создание и использование ролей.

3. Демонстрация свойства изолированности транзакций.

Исходные данные

- команда из трех человек, имеющих доступ к общей базе данных Oracle;

- SQL*Plus (или web-интерфейс данной программы);

- наличие таблицы PRODUCTS в схеме одного из пользователей.

Для понимания роли каждого члена команды вводятся следующие обозначения:

- владелец схемы: пользователь, являющийся владельцем всех объектов, которые будут использоваться в ходе лабораторной работы;

- первый пользователь: пользователь, которому будет делегировать объектные привилегии владелец схемы;

- второй пользователь: пользователь, которому будет делегировать объектные привилегии первый пользователь.

Результат

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

- выполняемые по ходу работы команды;

- результат выполнения команд;

- ответы на вопросы, присутствующие в тексте данного руководства.

Защита лабораторной работы

По результатам анализа предоставленных файлов преподаватель имеет право задать по несколько вопросов каждому члену команды.

1. Предоставление объектных привилегий без права делегирования

Шаг 1. Исходные данные

Все члены команды должны сообщить друг другу свои логины.

Далее все три пользователя должны подключиться к серверу Oracle каждый под своей учетной записью.

Всем трем пользователям необходимо попытаться получить доступ к таблице PRODUCTS, принадлежащей владельцу схемы, посредством оператора SELECT.

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

ПРИМЕЧАНИЕ: Все три члена команды могут иметь в своей схеме объекты, имена которых совпадают с именами объектов в схемах других пользователей. В рамках данной лабораторной используются только объекты одного из членов команды – владельца схемы.

Шаг 2. Предоставление объектных привилегий

Владелец схемы должен предоставить объектные привилегии SELECT и INSERT на таблицу PRODUCTS первому пользователю без права делегирования.

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

Второй пользователь также должен попытаться выполнить команду SELECT к таблице PRODUCTS, принадлежащей владельцу схемы. Попытка должна оказаться неудачной, поскольку у него нет необходимой привилегии.

Шаг 3. Попытка делегирования объектных привилегий

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

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

2. Предоставление объектных привилегий с правом делегирования

Шаг 1. Предоставление объектной привилегии

Владелец схемы должен предоставить первому пользователю объектную привилегию SELECT на таблицу PRODUCTS с правом делегирования.

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

Шаг 2. Делегирование привилегии

Первый пользователь должен делегировать второму пользователю привилегию SELECT на таблицу PRODUCTS, принадлежащей владельцу схемы.

Второй пользователь должен убедиться, что владеет привилегией SELECT на таблицу PRODUCTS, принадлежащей владельцу схемы.

3. Изъятие объектных привилегий

Владелец схемы должен изъять объектную привилегию SELECT на таблицу PRODUCTS у первого пользователя.

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

Второй пользователь должен проверить, имеет ли он по-прежнему доступ к таблице PRODUCTS, принадлежащей владельцу схемы.

Объяснение результата проверки необходимо включить в результат лабораторной работы.

4. Использование ролей Шаг 1. Создание роли

Владелец схемы должен создать в своей схеме роль с именем PRODUCTS_ROLE_<login>. Например, если логин владельца схемы user1, то роль должна иметь имя PRODUCTS_ROLE_USER1.

После создания роли владелец схемы должен включить в нее все объектные привилегии на принадлежащую ему таблицу PRODUCTS.

Шаг 2. Передача роли

Владелец схемы должен выдать роль PRODUCTS_ROLE_<login> первому пользователю с правом делегирования. Кроме этого, владелец схемы должен также передать первому пользователю привилегию SELECT на таблицу PRODUCTS.

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

Шаг 3. Дальнейшая передача роли

Первый пользователь должен передать роль PRODUCTS_ROLE_<login> второму пользователю.

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

Шаг 4. Изменение роли

Владелец схемы должен изъять привилегию UPDATE из роли PRODUCTS_ROLE_<login>.

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

Шаг 5. Изъятие роли

Владелец схемы должен изъять роль PRODUCTS_ROLE_<login> у первого пользователя.

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]