
Лабораторная работа №3 БД
.pdfМИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ федеральное государственное автономное образовательное учреждение высшего образования
«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ АЭРОКОСМИЧЕСКОГО ПРИБОРОСТРОЕНИЯ»
ИНСТИТУТ НЕПРЕРЫВНОГО И ДИСТАНЦИОННОГО ОБРАЗОВАНИЯ
КАФЕДРА ПРИКЛАДНОЙ ИНФОРМАТИКИ
ОЦЕНКА |
|
|
ПРЕПОДАВАТЕЛЬ |
|
|
канд. техн. наук, доцент |
подпись, дата |
Е. Л. Турнецкая |
должность, уч. степень, звание |
инициалы, фамилия |
ОТЧЕТ О ЛАБОРАТОРНОЙ РАБОТЕ
Лабораторная работа №3. Пользовательские привилегии
по дисциплине: Базы данных
РАБОТУ ВЫПОЛНИЛ |
|
|
|
|
|
СТУДЕНТ гр. № |
Z1411 |
|
|
Я. Н. Тюттерин |
|
|
номер группы |
|
подпись, дата |
|
инициалы, фамилия |
Студенческий билет № |
2022 / 4886 |
|
|
|
|
|
|
|
|
|
Санкт-Петербург 2024

Лабораторная работа № 3. Пользовательские привилегии
Цель работы: получение практических навыков по администрированию СУБД PostgreSql.
В системе будет четыре роли: бухгалтер-кассир, продюсер, менеджер по персоналу, администратор.
Бухглатеру-кассиру будет доступно редактирование содержимого таблицы с билетами(tickets), подписками на события(subscriptions), просмотр других таблиц. Продюсеру будет доступно редактирование таблицы с жанрами(genres), категориями(categories), постановками(shows), связующих таблиц genre_show, role_show_worker, category_show.
Менеджеру по персоналу будет доступно редактирование таблицы работников(workers), достижений(achievements), должностей(positions) и связующих таблиц achievement_worker, position_worker.
Администратору будут доступны все права.
Создание пользователей(фактически, ролей):
●Бухгалтер-кассир CREATE USER accountant WITH PASSWORD '123456';
●Продюсер CREATE USER producer WITH PASSWORD '123456';
●Менеджер по персоналу CREATE USER manager WITH PASSWORD '123456';
●Администратор CREATE USER administrator WITH PASSWORD '123456';
Результат создания ролей (пользователей) представлен на рисунке 1.
Рисунок 1 - Список пользователей БД
При попытке просмотреть данные в таблицах из под созданного пользователя - получаем ошибку доступа, так как какие-либо полномочия для новых пользователей - отсутствуют. Результат представлен на рисунках 2-3.

Рисунок 2 - Вход под новый пользователем
Рисунок 3 - Просмотр данных по таблице
Назначение полномочия SUPERUSER для административного пользователя представлено на рисунках 4-5.
Рисунок 4 - Назначение SUPERUSER
Листинг: ALTER USER administrator WITH SUPERUSER;

Рисунок 5 - Результат присвоения
Проверка того, что доступ появился, представлен на рисунках 6-7.
Рисунок 6 - Вход под административным пользователем
Рисунок 7 - Попытка просмотра содержимого таблицы

Предоставление прав на просмотр всех таблиц и редактирование части из них. Листинг:
-- Предоставление прав на просмотр всех таблиц
GRANT SELECT ON ALL TABLES IN SCHEMA public TO manager;
-- Предоставление прав на редактирование таблиц workers, achievements,
positions, achievement_worker, position_worker
GRANT SELECT, INSERT, UPDATE, DELETE ON workers TO manager; GRANT SELECT, INSERT, UPDATE, DELETE ON achievements TO manager; GRANT SELECT, INSERT, UPDATE, DELETE ON positions TO manager;
GRANT SELECT, INSERT, UPDATE, DELETE ON achievement_worker TO manager; GRANT SELECT, INSERT, UPDATE, DELETE ON position_worker TO manager;
Рисунок 8 - Результат выполнения
Назначение прав для продюсера представлено ниже:
GRANT SELECT ON ALL TABLES IN SCHEMA public TO producer;
GRANT SELECT, INSERT, UPDATE, DELETE ON genres TO producer;
GRANT SELECT, INSERT, UPDATE, DELETE ON categories TO producer;
GRANT SELECT, INSERT, UPDATE, DELETE ON shows TO producer;
GRANT SELECT, INSERT, UPDATE, DELETE ON genre_show TO producer;
GRANT SELECT, INSERT, UPDATE, DELETE ON role_show_worker TO producer;
GRANT SELECT, INSERT, UPDATE, DELETE ON category_show TO producer;
Результат выполнения представлен на рисунке 9.

Рисунок 9 - Результат выполнения
Назначение прав для бухгалтера-кассира представлено в листинге ниже:
GRANT SELECT ON ALL TABLES IN SCHEMA public TO accountant;
GRANT SELECT, INSERT, UPDATE, DELETE ON tickets TO accountant;
GRANT SELECT, INSERT, UPDATE, DELETE ON subscriptions TO accountant;
Рисунок 10 - Результат выполнения
Вывод
В результате проделанной работы были изучены различные варианты создания ролей(пользователей) в БД PostgreSQL. Разобраны и опробованы варианты ограничений/разрешений на просмотр/редактирование данных в таблицах БД.
Список использованных источников
1)Методические указания по выполнению лабораторной работы: https://pro.guap.ru/inside/student/tasks/2c07bbd93b419e2281870dd37d6bc5c0/download
2)Документаци по PostgreSQL: https://postgrespro.ru/docs/postgresql/17/sql-createuser
3)Документация по работе с ролями в PostgreSQL: https://www.postgresql.org/docs/current/sql-createrole.html
4)Документация по PostgreSQL: https://www.postgresql.org/docs/current/sql-createrole.html