Резервное дистанционное домашнее задание предназначено для студентов, пропустивших аудиторное занятие либо направленных на углубленную самостоятельную проработку этапа 1 курсового/практического проекта БД.
Цель задания: спроектировать архитектуру реляционных таблиц подсистемы учетных записей пользователей с разграничением прав доступа и разработать детальный макет диалогового окна формы входа (Login Dialog) для выбранной предметной области.
Студент выбирает вариант, соответствующий его номеру в журнале учебной группы (по модулю 4: 1, 2, 3 или 4):
| Вариант | Информационная система | Требуемые роли пользователей | Отраслевая специфика формы входа |
|---|---|---|---|
| Вариант 1 | Информационная система «Оптовый склад» | Кладовщик, Менеджер, Бухгалтер, Администратор | Поле выбора филиала/склада из выпадающего списка; скрытие символов пароля маркерами; блокировка кнопки входа при пустых полях. |
| Вариант 2 | Медицинская система поликлиники | Врач, Регистратор, Главврач | Авторизация по табельному номеру сотрудника; макет поля ввода кода двухфакторной аутентификации (2FA / OTP-код из SMS/приложения). |
| Вариант 3 | Банковский терминал обслуживания | Оператор, Кредитный инспектор, Контролер | Виртуальная цифровая клавиатура (экранный ввод PIN/пароля со случайным перемешиванием кнопок); защита от подглядывания (Shoulder Surfing). |
| Вариант 4 | Образовательный портал колледжа | Студент, Преподаватель, Куратор, Родитель | Форма входа по логину/email; интерактивная ссылка «Забыли пароль» с проектированием сценария безопасного сброса через временный токен. |
Отчет по домашнему заданию оформляется в электронном виде и должен содержать три обязательных раздела:
roles (id, role_name, role_description, created_at).users (id, login, salt, password_hash, role_id, is_active, failed_attempts, created_at). Обязательно обосновать размерности полей (длина хэша для выбранного алгоритма хэширования, длина соли).audit_logs (id, user_id, attempted_login, event_type, ip_address, event_time) с внешним ключом ON DELETE SET NULL.is_active = FALSE защищает целостность связей в базе данных при увольнении сотрудника.users, roles, audit_logs; первичные и внешние ключи согласованы; присутствуют поля salt, password_hash, is_active.