--работать разрешено:
DESC issubjects
SELECT * FROM issubjects;
INSERT INTO issubjects (isid,name)
VALUES (9,'деятельность по теоретической оценке методов шифрования');
--А теперь ch_cert заводит еще одного пользователя - lic_clerc, --предварительно создавая для него роль lic_clerc_role, для ко-
торой
--предоставляется привилегия select, insert на таблицу islicns
Администратор приложения создает нового пользователя и объекты базы данных:
connect ch_cert/ch_cert@orcl CREATE ROLE lic_clerc_role; GRANT select, insert
ON islicns to lic_clerc_role;
CREATE USER lic_clerc IDENTIFIED BY lic_clerc DEFAULT TABLESPACE users
TEMPORARY TABLESPACE temp QUOTA 1m ON users;
--Пользователь-администратор ch_cert не может предоставлять --привилегию создания сессии с базой данных другим пользо-
вателям.
GRANT connect TO lic_clerc;
--появляется сообщение обошибке
--администратор system предоставит ему такую возможность
Администратор базы данных добавляет администратору приложения дополнительную привилегию:
connect system/system@orcl
GRANT connect TO ch_cert WITH ADMIN OPTION;
Администратор приложения добавляет пользователю привилегию:
connect ch_cert/ch_cert@orcl GRANT connect TO lic_clerc;
301
Новый пользователь соединяется с базой данных для проверки своих привилегий:
connect lic_clerc/lic_clerc@orcl SELECT * FROM islicns;
--здесь появляется сообщение об ошибке, так как --пользователь-администратор ch_cert забыл назначить
--роль lic_clerc_role пользователю lic_clerc:
Администратор приложения исправляет свою ошибку: connect ch_cert/ch_cert@orcl
GRANT lic_clerc_role TO lic_clerc;
Новый пользователь соединяется с базой данных для проверки своих привилегий:
connect lic_clerc/lic_clerc@orcl SELECT * FROM islicns;
--С другими таблицами, кроме ISLicns, LicCenter, --пользователю lic_clerc привилегии на работу не --предоставлены:
SELECT * FROM issubject; SELECT * FROM liccenter;
-- после двух последних запросов появляется сообщение об ошибке
Администратор приложения добавляет привилегии новому пользователю:
connect ch_cert/ch_cert@orcl
--Осталось добавить пользователю lic_clerc привилегию --на работу с таблицей liccenter (только
--select,insert) - через роль lic_clerc_role:
GRANT select,insert
ON liccenter TO lic_clerc_role;
Новый пользователь проверяет свои привилегии: connect lic_clerc/lic_clerc@orcl
SELECT * FROM liccenter;
--запрос отрабатывает успешно.
Теперь создадим пользователя certif_mgr и дадим ему возможность работать с таблицей Manufctr через роль certif_mgr_role. Другие таблицы в связи с этим пользователем нам не важны, так как
302
дальше, в соответствующей лабораторной работе по аудиту мы попытаемся решить задачу аудита работы двух менеджеров с одной таблицей Manufctr, которая входит в схему обоих менеджеров.
Администратор приложения создает третьего пользователя и наделяет его привилегиями:
connect ch_cert/ch_cert@orcl
CREATE USER certif_mgr identified BY certif_mgr DEFAULT TABLESPACE users
TEMPORARY TABLESPACE temp QUOTA 1m ON users;
GRANT connect TO certif_mgr; CREATE ROLE certif_mgr_role; GRANT select,insert,update,delete ON manufctr TO certif_mgr_role;
GRANT certif_mgr_role TO certif_mgr;
Сдача лабораторной работы
Сдача лабораторной работы заключается в выполнении студентом задачи разграничения полномочий в предметной области, заданной преподавателем – по такой же схеме, как и в приведенном описании лабораторной работы. Предметные области преподаватель может выбрать из числа поставляемых Oracle вместе с установочной версией СУБД примеров (схемы пользователей scott, hr, sh).
Тестовые задания к работе 11
Входной контроль
1. Что мы понимаем под пользователем (базы данных), когда говорим о ролях и привилегиях пользователей (базы данных)?
a)пользователя операционной системы;
b)учетную запись пользователя операционной системы;
c)учетную запись пользователя базы данных;
d)пользователя предприятия (в терминах глобальной аутентификации);
e)правильных ответов нет.
303
2.Какая (какие) из нижеприводимых строк соответствуют определению привилегий базы данных?
a)привилегии пользователя определяют, какие действия над данными и над объектами пользователей являются разрешенными (это разрешения на объекты пользователей, такие как таблицы, представления, последовательности, пакеты и т.п.);
b)привилегии пользователя определяют, какие действия в системе (базы данных) являются разрешенными (это разрешения на операции уровня базы данных, например подключение к базе данных, создание пользователей, внесение изменений в конфигурацию базы данных);
c)привилегии пользователя определяют, какие действия разрешены над файлами операционной системы реализующими программное обеспечение СУБД;
d)привилегии пользователя определяют какие дейсвтия разрешены над файлами операционной системы, реализующими базу данных;
e)правильных ответов нет.
3.Укажите, какие из нижеприводимых строк соответствуют типам привилегий пользователей СУБД:
a)табличные привилегии;
b)объектные привилегии;
c)программные привилегии;
d)системные привилегии;
e)правильных ответов нет.
4.Какие правила определены для управления привилегия-
ми?
a)объект принадлежит пользователю, его создавшему (если синтаксисом не указано создание объекта другого пользователя, конечно, при соответствующих полномочиях пользователя, создающего объект другого пользователя);
b)владелец объекта может изменять привилегии своего объек-
та;
c)объектная привилегия всегда соотносится с конкретным объектом, а системная ‒ с объектами вообще;
d)владелец объекта может отобрать привилегию на его использование у любого пользователя;
e)правильных ответов нет.
304
5.В нижеприводимых строках укажите строки с привилегиями, поддерживаемыми языком SQL:
a) ALTER; b) SELECT; c) INSERT; d) DROP;
e) правильных ответов нет.
6.Укажите верное определение роли:
a)роль – специально созданная программа, позволяющая вставлять записи в таблицу пользователя;
b)роль – специально создаваемое представление базы данных;
c)роль – это набор привилегий, которому присваивается имя;
d)роль – специально созданный программный модуль, включающий функции создания и манипулирования объектами пользователя;
e)правильных ответов нет.
7. В нижеприводимом списке укажите автоматически создаваемые (при создании базы данных) роли:
a)CONNECT;
b)RESOURCE;
c)DBA;
d)USERROLE;
e)правильных ответов нет.
Выходной контроль
1.АБД (system) создал в сеансе SQL*Plus пользователя U1, определив ему пароль, tablespase s и квоты на них. Укажите, какие роли получил по умолчанию пользователь U1:
a)DBA;
b)manager, boss;
c)connect, resource;
d)backup – manager;
e)правильных ответов нет;
f)я затрудняюсь с ответом на этот вопрос.
2.Польз. u3 имеет роли connect, resource и создал проц-ру getdata, вывод-ю на экран содерж. таблицы u3. tab3_1 и дал привил-ю исполн. этой процедуры польз. u4, имеющему роли
305