минобрнауки россии

федеральное государственное бюджетное

образовательное учреждение высшего образования

«ЧЕРЕПОВЕЦКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»

Институт(факультет)	Институт Информационных Технологий
Кафедра	Математического и программного обеспечения ЭВМ
Дисциплина	Администрирование баз данных

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

Применение политики защиты в СУБД Oracle

Выполнил студент группы
Информационные системы и технологии
группа
1ИСб-00-1оп-21
шифр, наименование
Аксенов Иван Константинович
фамилия, имя, отчество

Руководитель
Селяничев Олег Леонидович
фамилия, имя, отчество
Доцент, кандидат наук
должность

Череповец, 2025 г.

Задание: Из общеобразовательной школы поступил заказ на написание приложения для работы с БД.

Предполагается, что пользователями его будут лица с разными правами доступа:

директор (полные, но не мед);

учитель (успеваемость любого ученика, сведения о родителях);

учащийся (успеваемость любого_ученика/своя по любому предмету);

фельдшер (медицинские данные).

Продумайте распределение прав по ширине (таблицам, полям) и по записям.

Ход работы:

ER-диаграмма предметной области состоит из 7 сущностей (Рис. 1).

Рис. 1. ER-диаграмма

Для решаемой задачи были определены роли пользователей, которые имеют разный доступ к системе (Таблица 1).

Таблица 1

Уровни доступа ролей пользователей

Роль	Таблицы (операции)
Директор	Всё таблицы (W/R)
Учитель	STUDENTS (R), STUDETNS_GRADES (W/R), SUBJECTS (R), PARENTS (R), STUDENTS_PARENTS (R), TEACHERS (R)
Учащийся	STUDENTS (R), STUDETNS_GRADES (R), SUBJECTS (R)
Фельдшер	STUDENTS (R), MEDIC_DATAS(W/R)

Структура таблиц в СУБД Oracle представлена на Рис. 2 - Рис. 7

Рис. 2. Структура PARENTS

Рис. 3. Структура MEDIC_DATAS

Рис. 4. Структура STUDENTS

Рис. 5. Структура STUDENTS_GRADES

Рис. 6. Структура STUDENTS_PARENTS

Рис. 7. Структура SUBJECTS

Рис. 8. Структура TEACHERS

Для таблиц STUDNETS, STUDENTS_GRADES и STUDENTS_PARENTS были созданы ограничения (Рис. 9 - Рис. 11).

Рис. 9. Ограничения таблицы STUDENTS

Рис. 10. Ограничения таблицы STUDENTS_GRADES

Рис. 11. Ограничения таблицы STUDENTS_PARENTS

Далее необходимо в консольном режиме управления подключиться к учетной записи system, выдать права другой учетной записи с помощью команды GRANT (Рис. 12).

Рис. 12. Установка права пользователю в консоли

После этого нужно подключиться к учетной записи, которой были выданы права и создать роли пользователей с помощью команды CREATE ROLE (Рис. 13).

Рис. 13. Создание ролей в консоли

Далее нужно назначить роли director права с помощью команды GRANT (Рис. 14).

GRANT ALL PRIVILEGES ON medic_datas TO director;

GRANT ALL PRIVILEGES ON students TO director;

GRANT ALL PRIVILEGES ON students_parents TO director;

GRANT ALL PRIVILEGES ON parents TO director;

GRANT ALL PRIVILEGES ON teachers TO director;

GRANT ALL PRIVILEGES ON students_grades TO director;

GRANT ALL PRIVILEGES ON students TO subject;

Рис. 14. Назначение прав роли директора в консоли

Далее нужно назначить роли teacher права с помощью команды GRANT (Рис. 15).

GRANT SELECT ON students TO teacher;

GRANT ALL PRIVILEGES ON students_grades TO teacher;

GRANT SELECT ON parents TO teacher;

GRANT SELECT ON students_parents TO teacher;

GRANT SELECT ON teachers TO teacher;

Рис. 15. Назначение прав роли учителя в консоли

Далее нужно назначить роли student права с помощью команды GRANT (Рис. 16).

GRANT SELECT ON students TO student;

GRANT SELECT ON students_grades TO student;

GRANT SELECT ON subjects TO student;

Рис. 16. Назначение прав роли ученика в консоли

Далее нужно назначить роли medic права с помощью команды GRANT ().

GRANT SELECT ON students TO medic;

GRANT ALL PRIVILEGES ON medic_datas TO medic;

Рис. 17. Назначение прав роли медика в консоли

Для просмотра прав ролей необходимо использовать команду SELECT GRANTEE, PRIVILEGE, TABLE_NAME

FROM USER_TAB_PRIVS; (Рис. 18)

Рис. 18. Просмотр прав ролей во всех таблицах

Для просмотра установленных привилегий прав к определённой таблице нужно использовать оператор WHERE (Рис. 19):

SELECT GRANTEE, PRIVILEGE

FROM USER_TAB_PRIVS

WHERE TABLE_NAME = UPPER('students')

ORDER BY GRANTEE, PRIVILEGE;

Рис. 19. Просмотр прав ролей в определённой таблице

Для удаления привилегии нужно использовать команду REVOKE ():

REVOKE SELECT ON students FROM director;

Рис. 20. Удаление права SELECT для роли диреткора

Для просмотра установленных привилегий прав к определённой таблице в web-интерфейсе нужно на странице таблицы перейти во вкладку «Grants» (Рис. 21):

Рис. 21. Вкладка «Grants» таблицы

Для добавления привилегий в web-интерфейсе на странице таблицы, во вкладке «Grants» нужно нажать кнопку «Grant» (Рис. 22).

Рис. 22. Добавление привилегий в APEX

Рис. 23. Добавленные привилегии

Для удаления привилегий в web-интерфейсе на странице таблицы, во вкладке «Grants» нужно нажать кнопку «Revoke» (Рис. 24 - Рис. 25).

Рис. 24. Выбор удаляемых привилегий в APEX

Рис. 25. Удаление привилегий в APEX

Рис. 26. Результат удаления привилегий