Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лабораторная работа №3 БД

.pdf
Скачиваний:
0
Добавлен:
07.01.2025
Размер:
2.39 Mб
Скачать

МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ федеральное государственное автономное образовательное учреждение высшего образования

«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ АЭРОКОСМИЧЕСКОГО ПРИБОРОСТРОЕНИЯ»

ИНСТИТУТ НЕПРЕРЫВНОГО И ДИСТАНЦИОННОГО ОБРАЗОВАНИЯ

КАФЕДРА ПРИКЛАДНОЙ ИНФОРМАТИКИ

ОЦЕНКА

 

 

ПРЕПОДАВАТЕЛЬ

 

 

канд. техн. наук, доцент

подпись, дата

Е. Л. Турнецкая

должность, уч. степень, звание

инициалы, фамилия

ОТЧЕТ О ЛАБОРАТОРНОЙ РАБОТЕ

Лабораторная работа №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