
- •Аннотация
- •Содержание
- •Введение
- •1 Анализ предметной области
- •2 Обоснование модели данных
- •3 Обоснование выбора субд
- •4 Описание функций групп пользователей
- •5 Описание функций управления данными
- •5.1 Хранение данных
- •5.2 Манипулирование данными
- •5.3 Назначение прав доступа
- •Генерация справок и отчетов
- •6 Организация защиты бд
- •Заключение
- •Список информационных источников
- •Приложение а
- •Основные разделы базы данных
- •Основные операции
- •Ввод данных
- •Редактирование данных
- •Удаление данных
- •Извлечение данных
- •Генерация отчетов
- •Приложение б
5.3 Назначение прав доступа
Администратору базы данных, как правило, не нужно отдельно предоставлять права доступа, поскольку он уже имеет все необходимые привилегии для выполнения любых операций в базе данных.
Создание роли администратора
CREATE ROLE admin WITH SUPERUSER LOGIN;
Создание роли завуча и предоставление прав доступа
CREATE ROLE head_teacher WITH LOGIN;
GRANT SELECT ON ALL TABLES IN SCHEMA public TO head_teacher;
GRANT INSERT, UPDATE, DELETE ON TABLE "TEACHER", "STUDENT", "STATEMENT" TO head_teacher;
Создание роли учителя и предоставление прав доступа
CREATE ROLE teacher WITH LOGIN;
GRANT SELECT ON ALL TABLES IN SCHEMA public TO teacher;
GRANT INSERT, UPDATE, DELETE ON TABLE "STATEMENT" TO teacher;
Создание роли ученика и предоставление прав доступа
CREATE ROLE student WITH LOGIN;
GRANT SELECT ON TABLE "STATEMENT", "SCHEDULE" TO student;
Генерация справок и отчетов
Генерация отчетов осуществляется путем выборки значений с помощью оператора SELECT, агрегатных функций и соединения таблиц, по необходимости значения можно отсортировать и сгруппировать.
Например, справка о количестве учеников в каждом классе генерируется функцией
SELECT "CLASS"."CLASS_NUMBER", COUNT("STUDENT"."STUDENT_ID") AS student_count // Выбирает номер класса (CLASS_NUMBER) и подсчитывает количество учеников (student_count) в этом классе.
FROM "CLASS"
JOIN "STUDENT" ON "CLASS"."CLASS_ID" = "STUDENT"."CLASS_ID" // Соединяет таблицы CLASS и STUDENT по полю CLASS_ID, чтобы связать каждый класс с учениками, которые в нём учатся.
GROUP BY "CLASS"."CLASS_NUMBER";
6 Организация защиты бд
Ограничения целостности для информационных объектов в разработанной БД реализуется с помощью:
первичных ключей, которые представлены в виде уникальных идентификаторов для каждой главной таблицы;
внешних ключей, через которые осуществляется связь дочерних таблиц с главными;
типа данных serial, благодаря чему происходим автоматическое увеличение уникальных номеров новых строк;
условия CHECK в таблице "SCHEDULE".
Защита базы данных школы также включает в себя регулярное резервное копирование данных, чтобы предотвратить их потерю — обычно это выполняется ежедневно для текущих данных и еженедельно для полных резервных копий.
Шифрование данных, как на уровне базы данных, так и резервных копий, защищает информацию от несанкционированного доступа.
Процедуры подтверждения подлинности обеспечивают безопасный доступ к базе данных, включая использование уникальных логинов и паролей, а также, по возможности, многофакторной аутентификации для дополнительной безопасности.
Соответственно необходимо
1. Настроить регулярное резервное копирование данных: ежедневно для текущих данных и еженедельно для полных резервных копий.
2. Внедрить шифрование данных как при хранении, так и при передаче, включая резервные копии.
3. Обеспечить надёжное подтверждение подлинности пользователей с использованием уникальных логинов и паролей, а также многофакторной аутентификации.