Управление привилегиями и ролями базы данных, страница 3

При отмене объектных привилегий возможен каскадный эффект, который необходимо исследовать до использования команды REVOKE.

Предположим, пользователь А предоставил привилегию с параметром WITH GRANT OPTION пользователю В, который в свою очередь предоставил ее пользователю С. Затем, если пользователь А отменяет эту привилегию у пользователя В, то пользователь С также лишается этой привилегии

Пользователь В никогда не может отменить привилегию, выданную пользователем А, а пользователь С никогда не может отменить привилегию, выданную пользователями A или В.

Итоги

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

Административное управление привилегиями

•    Предоставление пользователям права выполнения операций определенного типа.

•    Разрешение и ограничение доступа к данным и их изменения.

•    Разрешение и ограничение возможное™ выполнения системных функций и изменения структуры базы данных.

Системные привилегии

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

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

Лабораторная работа 1

 Предоставление и использование системных привилегий

1.   Войдя в базу данных как system, предоставьте пользователю ernie привилегию, необходимую для подсоединения к базе данных. (Если пользователь ernie был зарегистрирован в базе данных с помощью графического интерфейса Server Manager или Enterprise Manager, ему автоматически была предоставлена требуемая привилегия.)

2.   Чтобы убедиться в корректности предоставления привилегии,

подсоединитесь к базе данных как ernie и обратитесь к представлениям

3.   Как пользователь system manager предоставьте пользователю bert привилегии для подсоединения к базе данных и создания таблиц. (Если пользователь bert был зарегистрирован в базе данных с помощью графического интерфейса Server Manager или Enterprise Manager, ему автоматически были предоставлены требуемые привилегии.)

4.   Как пользователь bert создайте таблицы ЕМР и DEPT и загрузите данные в таблиц, выполнив командный файл dept.sql. Обратите внимание, что в командном файле не указано явно табличное пространство для таблиц. Убедитесь в существовании таблиц.

5.   Обратитесь к представлению USER_OBJECTS. Указаны ли в нем какие-либо объекты помимо созданных таблиц? Почему?

В представлении указаны два неявно созданных индекса, требуемых для проверки правил целостности PRIMARY KEY в таблицах ЕМР и DEPT.

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

1.   Используя SQL*Plus, подсоединитесь к базе данных как! system manager и просмотрите содержимое таблицы ЕМР пользователя bert.

2.   Оставаясь подсоединенным к базе данных как system, попытайтесь предоставить пользователю ernie привилегию просмотра таблицы ЕМР пользователя bert. Что произошло? Почему?

Команда не выполнилась, поскольку доступ к объектам чужих схем можно предоставлять только в том случая, когда от владельца объекта получена соответствующая привилегия с указанием режима  WITH GRANT OPTION

3.   Как пользователь bertпредоставьте пользователю erniet возможность просмотра таблицы ЕМР.

4.   Проверьте представление USER_TAB_PRIVS, чтобы убедиться в успешном предоставлении привилегии.

5.   Подсоединитесь к базе данных как ernie и проверьте, что привилегия SELECT была предоставлена корректно, обратившись к таблице ЕМР пользователя bert.

6.   Как пользователь bert предоставьте пользователю ernie возможность обновления только столбцов ENAME и JOB таблицы ЕМР.

7.   Подсоединитесь к базе данных как ernie и просмотрите представления USER_TAB_PRIVS и USER_COL_PRIVS.

8.   Как пользователь ernie выполните команду UPDATE, которая увеличивает зарплату (столбец SAL таблицы ЕМР) каждого служащего (значение 'CLERK' столбца JOB) на 10%. Что произошло и почему?

У ПОЛЬЗОВАТЕЛЯ ernie нет привилегии обновления столбца SAL.

9.  Как пользователь ernie  выполните команду UPDATE, которая изменяет должности служащих (столбцу JOB вместо значения 'CLERK' присваивается значение "SR CLERK'). Выполнилась ли команда?

10.  Отмените изменения, внесенные в таблицу ЕМР при выполнении команды UPDATE

11.  Какими привилегиями должен обладать пользователь system для предоставления пользователю ernie привилегии просмотра таблицы ЕМР у  пользователя bert?

12.  Как bert предоставьте пользователю system привилегию SELECT для таблицы ЕМР с правом предоставления этой привилегии другим пользователям, а затем как system предоставьте эту привилегию пользователю ernie.

a.  Как пользователь bert просмотрите представления USER_TAB_PRIVS

b.  Может ли пользователь ernie предоставлять другим пользователям привилегию SELECT для таблицы BERT.EMP?

13.  Как bert отмените привилегию SELECT для таблицы ЕМР пользователя system.

14.  Обратитесь к представлению USER_TAB_PRIVS. Может ли теперь пользователь ernie предоставлять привилегию SELECT в режиме WITH GRANT OPTION?