Необходимо доработать веб приложение:
Задание 1
- Задачи по мониторингу БД:
- Создайте таблицу-лог, отдельную от ваших основных сущностей БД.
- Создайте для каждой основной таблицы в вашей БД триггер, который срабатывает при любых изменениях в БД (вставка новых данных, изменение существующих записей, удаление кортежей из таблицы). При срабатывании триггер должен вносить в таблицу-лог информацию о том, когда было произведено изменение, со стороны какой роли поступил запрос, какие кортежи поменялись, старые и новые значения.
- Продемонстрируйте работу системы логирования для различных операций и отношений.
- Задачи по шифрованию данных.
- Создайте таблицу с секретными данными, отдельно от ваших основных сущностей. Например, это может быть таблица с токенами или ключами доступа, для каждого класса-пользователей.
- Зашифруйте содержимое данной таблицы, в качестве алгоритма шифрования используйте любой симметричный алгоритм шифрования. Ключ шифрования для данной таблицы не должен храниться в ИС. Ключ шифрования может быть получен из индивидуального пароля для дешифрования суперпользователя (пароль не связан с паролем для входа в СУБД). Индивидуальный пароль суперпользователя и ключ шифрования может быть связан через одностороннюю функцию. Например, пусть индивидуальный пароль комбинация «!stroNgpsw31234», считаем от данного пароля детерминированную хэш-функцию (например, sha-256), полученный хэш-используем как ключ шифрования/дешифрования для симметричного алгоритма шифрования таблицы с секретными данными (например, для AES-256)
- Демонстрируем, что даже обладая полными правами администратора, но без знания индивидуального пароля невозможно получить содержимое таблицы с секретными данными
- Задачи по разграничению доступа в БД:
- Создайте в СУБД как минимум 2 роли (суперпользователь не считается) для каждого из классов потребителей информации;
- С помощью внутренних инструментов СУБД для каждой роли определите набор привилегий по отношению к таблицам вашей БД. Руководствуйтесь принципом минимальных привилегий, если определенному классу потребителей не нужен доступ к определенным таблицам/атрибутам (список задач БД, составленный в рамках 1 ЛР), то доступ к этим таблицам/атрибутам не предоставляется. Разграничиваем доступ к представлениям, созданным в 1 ЛР, а также таблицам логирования (таблицы логирования может просматривать только суперпользователь)
- Продемонстрируйте работу вашей системы разграничения доступа. Зайдите за каждую из ролей и покажите доступные со стороны каждой роли отношения.
Задание 2
- Создание резервной копии БД согласно выбранному расписанию.
- Внести случайные изменения в таблицы созданной вами базы данных (изменения вносятся до момента создания контрольной точки).
- Продемонстрировать процесс отката к последней контрольной точке. Откатите изменения, выполненные в пункте 2.
- Проанализируйте возможность анализа/просмотра изменений, которые были «откачены», с помощью системы логирования СУБД (в том числе сделанной ЛР 3) или с помощью средств системы резервирования.
Стек технологий: React, Node, pgsql