# Безопасность БД.

#### Сеть и инфраструктура
- Доступ к БД только через приватную сеть или VPN
- Firewall: открыт только порт СУБД
- БД не должна быть напрямую в интернете

⸻

#### Файлы и ОС
- Права доступа на уровне ОС для файлов БД
- Регулярные обновления безопасности ОС
- Шифрование диска (LUKS/BitLocker/TPM) для защиты данных «на физическом носителе»

⸻

#### Пользователи и доступы
- Принцип минимальных прав (Least Privilege)
- Только нужные права: SELECT / INSERT / UPDATE / DELETE
- Не использовать root / postgres в приложениях
- Не хранить пароли в коде

⸻

#### Аудит и логирование
- Аудит: кто, когда, что делал, с какими объектами
- Логирование: подключения, ошибки, подозрительная активность
- Профайлер / планы запросов: выявление тяжёлых запросов → предотвращение DoS или неправильного доступа

⸻

#### SQL-инъекции
- П араметризованные запросы / prepared statements

⸻

#### Бэкапы
- Цель: ошибки пользователей, сбои, атаки
- Типы бэкапов:
  1. Полный — вся база
  2. Инкрементальный — изменения с последнего бэкапа
  3. Дифференциальный — изменения с последнего полного бэкапа
- Методы:
  - SQL-дампы — перенос структуры и данных
  - Файловый — точная копия файлов
  - Стриминг (WAL) — откат к любому моменту времени
  - Практика: хранить отдельно, шифровать, проверять восстановление

⸻

#### Прочее
- Разделение сред: dev / stage / prod
- 2FA для админов
- Отключить пользователей и базы по умолчанию
- Отключить анонимные подключения
- SSL / TLS: шифрование трафика (пароли и PII)


> Безопасность БД = сеть + доступы + шифрование + аудит + бэкапы + защита данных + ограничения ресурсов