설명 없음

icp0 60734dd941 Добавление проекта 1 개월 전
.gitignore 60734dd941 Добавление проекта 1 개월 전
AppSettings.cs 60734dd941 Добавление проекта 1 개월 전
AutorentWinForms.csproj 60734dd941 Добавление проекта 1 개월 전
Database.cs 60734dd941 Добавление проекта 1 개월 전
LoginForm.cs 60734dd941 Добавление проекта 1 개월 전
MainForm.cs 60734dd941 Добавление проекта 1 개월 전
Program.cs 60734dd941 Добавление проекта 1 개월 전
README.md 60734dd941 Добавление проекта 1 개월 전
database_security_postgresql.sql 60734dd941 Добавление проекта 1 개월 전

README.md

Автопрокат: Windows Forms приложение и защита БД

Проект реализует настольное приложение на C# Windows Forms для предметной области «Автопрокат».

Запуск

dotnet run

Приложение подключается к PostgreSQL через файл dbsettings.json. Сейчас оно настроено на учебный сервер edu-pg.itiscaf.ru, базу dbwork, схему garanin_gi.

Строку подключения также можно передать через переменную окружения AUTORENT_CONNECTION_STRING.

Пользователь для входа:

Логин Пароль Роль Обязанности
garanin_gi пароль от PostgreSQL Администратор Полный доступ к данным, отчетам и журналу аудита
manager Manager123! Менеджер Ввод и редактирование рабочих данных, формирование отчетов
shagavaliev_iv пароль viewer-пользователя Аналитик Просмотр данных и отчетов без права изменения

Реализованные функции

  • ввод, поиск, редактирование и удаление клиентов;
  • ввод, поиск, редактирование и удаление автомобилей;
  • управление справочником марок, доступно администратору;
  • оформление и сопровождение договоров аренды;
  • CSV-экспорт текущих таблиц;
  • формирование отчетных документов в HTML и TXT;
  • просмотр журнала операций.

Защита на уровне приложения

  • авторизация по логину и паролю;
  • пароли хранятся не в открытом виде, а как PBKDF2-SHA256 хеш с индивидуальной солью;
  • разграничение прав по ролям admin, manager, viewer;
  • запрет операций изменения для аналитика;
  • параметризованные запросы к БД;
  • пользовательские сообщения об ошибках целостности без раскрытия лишних внутренних деталей.

Защита на уровне БД

В локальной демонстрационной БД реализованы:

  • первичные и внешние ключи;
  • ограничения UNIQUE для госномеров, телефонов, водительских удостоверений и названий марок;
  • ограничения CHECK для статусов, года выпуска, цены и дат аренды;
  • ON DELETE RESTRICT для защиты связанных данных;
  • представления v_rentals_full, v_available_cars, v_client_stats;
  • триггеры аудита INSERT, UPDATE, DELETE для таблиц brand, car, client, rental;
  • журнал audit_log.

Файл database_security_postgresql.sql содержит вариант DDL для PostgreSQL с ролями БД, правами доступа, Row Level Security и триггерами логирования.