ПОЛНОМОЧИЯ НА ИСПОЛЬЗОВАНИЕ БЫЗЫ ДАННЫХ. РАБОТА С ВНЕШНИМИ БАЗАМИ ДАННЫХ
Лабораторная работа 5
ПОЛНОМОЧИЯ НА ИСПОЛЬЗОВАНИЕ БЫЗЫ ДАННЫХ. РАБОТА С ВНЕШНИМИ БАЗАМИ ДАННЫХ
Цель работы
Ознакомиться со средствами предоставления полномочий на использование баз данных и таблиц и основами работы с внешними базами данных.
Содержание работы и методические указания к ее выполнению
После создания базы данных пользователь (программа) является исключительным собственником созданной базы данных. Это означает, что ни один другой пользователь (программа) не имеет доступа ни к одной из таблиц базы данных, включая их просмотр, если владелец базы данных не предоставил соответствующих прав.
Представление прав реализуется оператором Grant. Оператор Grant в одной из форм
Grant {connect/resource/dba} to {public/}
предоставляет права на уровне базы данных.
Hазначение опций следующее:
connect - право на модификацию содержимого базы данных;
resource - право на модификацию структуры таблиц базы данных;
dba - права администратора;
public - все пользователи;
<список users>- перечень пользователей на уровене Unix, например, sb01, sb02 и т.д.
Оператор Grant в форме
Grant {all/insert/delete/select/update/index/alter}
on {имя_таблицы/view/synonym}
to {public/<список users>}
предоставляет права на уровне отдельной таблицы. Hазначение опций следующее:
insert, delete, select, update - права на выполнение указанной операции с таблицей;
index - право на формирование индексов;
alter - право на модификацию структуры таблица;
имя таблицы, view, synonym - идентификация таблицы, представлений, синонимов.
Отнятие прав реализуется оператором Revoke. Оператор Revoke в одной из форм
Revoke {connect/resource/dba} from {public/}
отнимает права на уровне базы данных.
Оператор Revoke в форме
Revoke{all/insert/delete/select/update/index/alter}
on {имя_таблицы/view/synonym}
from {public/<список users>}
отнимает права на уровне отдельной таблицы.
Текущей базой данных называется база данных, открытая с помощью операторов Database или Create database.
Любая другая база данных называется внешней. Для ссылки на таблицу во внешней базе данных необходимо указать имя этой базы данных как часть имени таблицы, например, salesdb:contracts, где salesdb - имя внешней базы данных, contracts - имя таблицы. К имени базы данных можно добавить имя сервера, т.е. сетевой машины, где запущен еще один сервер баз данных баз данных, и таким образом в случае распределенной базы данных обращение к таблице contracts базы данных salesdb, размещенной на сервере central, будет выглядеть следующим образом: salesdb@central:contracts.
Последовательность выполнения лабораторной работы:
1. Занести в таблицу поставщиков S строки с фамилиями членов бригады.
2. Занести произвольным образом в таблицу поставок SPJ несколько строк (3-5 строк) о поставках, связанных с занесенными фамилиями.
3. Выполнить два запроса к базе данных согласно номеру Вашего варианта. При выполнении запроса данные должны выбираться из таблиц Вашей собственной базы данных.
4. Повторить задание п. 3 с той разницей, что сведения о номенклатуре деталей и изделий (таблицы P и J) должна браться из собственной базы данных, а сведения о поставщиках и поставках (таблицы S и SPJ) должны браться из базы данных соседней бригады. Предварительно необходимо узнать имя этой базы данных. Убедитесь в невозможности выполнения задания.
5. Обеспечьте, чтобы владелец используемой Вами внешней базы данных предоставил Вам полномочия на просмотр используемых Вами таблиц в его базе данных, дав соответственно ему такие же полномочия для выполнения аналогичных действий.
6. Повторите задание п. 4. Сравните результаты с результатами, полученными в п. 3.
7. Сделайте попытку изменить информацию о поставщиках-владельцах базы данных (город, рейтинг и т.д.) в таблице S внешней базы данных. Убедитесь в невозможности выполнения задания.
8. Обеспечьте, чтобы владелец внешней используемой Вами базы данных предоставил Вам полномочия на модификацию данных из используемых Вами таблиц в его базе данных, дав соответственно ему такие же полномочия для выполнения аналогичных действий.
9. Повторите задание п. 7. Проверьте успешность выполнения действий.
10. Дождавшись, когда владелец внешней базы данных закончит выполнение п. 9, сделайте попытку удалить из таблицы S используемой Вами внешней базы данных поставщиков с именами, принадлежащими владельцам базы данных, и связанные с ними поставки из таблицы SPJ. Убедитесь в невозможности выполнения задания.
11. Обеспечьте, чтобы владелец используемой Вами внешней базы данных предоставил Вам полномочия на удаление из используемых Вами таблиц в его базе данных, дав соответственно ему такие же полномочия для выполнения аналогичных действий.
12. Повторите задание п. 10. Проверьте успешность выполнения действий.
13. Отнимите предоставленные Вами права на пользование Вашей базой данных.
Варианты заданий
Вариант 1.
1. Выдать список всех поставок, в которых количество деталей находится в диапазоне от 300 до 750 включительно.
2. Получить номера изделий, использующих по крайней мере одну деталь, поставляемую поставщиком S6.
Вариант 2.
1. Выдать цвета деталей, поставляемых поставщиком S6.
2. Получить номера и фамилии поставщиков, поставляющих деталь Р1 для какого-либо изделия в количестве, большем среднего объема поставок детали Р1 для этого изделия.
Вариант 3.
1. Выдать названия изделий, для которых поставляются детали поставщиком S6.
2. Получить номера и названия изделий, для которых поставщик S6 поставляет несколько деталей каждого из поставляемых им типов.
Вариант 4.
1. Для каждой поставляемой для некоторого изделия детали выдать ее номер, номер изделия и соответствующее общее количество деталей.
2. Получить номера изделий, для которых детали полностью поставляет поставщик S6.
Вариант 5.
1. Выдать номера и фамилии поставщиков, поставляющих детали для какого-либо изделия с деталью P1 в количестве, большем, чем средний объем поставок детали P1 для этого изделия.
2. Получить номера изделий, использующих только детали, поставляемые поставщиком S6.
Вариант 6.
1. Выдать общее число изделий, для которых поставляет детали поставщик S6.
2. Получить номера изделий, детали для которых поставляет каждый поставщик, поставляющий ка какую-либо красную деталь.
Вариант 7.
1. Выдать общее количество деталей P1, поставляемых поставщиком S6.
2. Получить номера и фамилии поставщиков, поставляющих по крайней мере одну деталь, поставляемую по крайней мере одним поставщиком, который поставляет по крайней мере одну красную деталь.
Контрольные вопросы