Загрузка данных


#!/bin/bash

# ============================================================================
# Скрипт для запуска аудита безопасности PostgreSQL
# ============================================================================

# Параметры подключения
DB_HOST="${1:-localhost}"
DB_PORT="${2:-5432}"
DB_USER="${3:-postgres}"
DB_NAME="${4:-postgres}"
OUTPUT_FILE="${5:-postgres_audit_$(date +%Y%m%d_%H%M%S).txt}"

echo "================================================================================"
echo "                    АУДИТ БЕЗОПАСНОСТИ POSTGRESQL"
echo "================================================================================"
echo "Дата: $(date '+%Y-%m-%d %H:%M:%S')"
echo "Хост: $DB_HOST"
echo "Порт: $DB_PORT"
echo "Пользователь: $DB_USER"
echo "База данных: $DB_NAME"
echo "Отчет: $OUTPUT_FILE"
echo "================================================================================"

# Проверка подключения
echo ""
echo "Проверка подключения к БД..."
if ! psql -h "$DB_HOST" -p "$DB_PORT" -U "$DB_USER" -d "$DB_NAME" -c "SELECT 1;" > /dev/null 2>&1; then
    echo "ОШИБКА: Не удалось подключиться к PostgreSQL!"
    echo "Проверьте параметры подключения и права доступа."
    exit 1
fi
echo "Подключение успешно установлено."

# Запуск аудита
echo ""
echo "Запуск проверок..."

{
    echo "================================================================================"
    echo "                    АУДИТ БЕЗОПАСНОСТИ POSTGRESQL"
    echo "================================================================================"
    echo "Дата проверки: $(date '+%Y-%m-%d %H:%M:%S')"
    echo "Хост: $DB_HOST:$DB_PORT"
    echo "База данных: $DB_NAME"
    echo "Пользователь: $DB_USER"
    echo "================================================================================"
    echo ""
    
    # Выполнение SQL-скрипта
    psql -h "$DB_HOST" -p "$DB_PORT" -U "$DB_USER" -d "$DB_NAME" \
         -f postgres_security_audit.sql 2>&1
    
} | tee "$OUTPUT_FILE"

# Подсчет результатов
echo ""
echo "================================================================================"
echo "                           СВОДКА ПО РЕЗУЛЬТАТАМ"
echo "================================================================================"

WARNING_COUNT=$(grep -c "WARNING" "$OUTPUT_FILE" || echo "0")
OK_COUNT=$(grep -c "| OK" "$OUTPUT_FILE" || echo "0")
INFO_COUNT=$(grep -c "| INFO" "$OUTPUT_FILE" || echo "0")

echo "Всего проверок с WARNING: $WARNING_COUNT"
echo "Всего проверок OK: $OK_COUNT"
echo "Информационных сообщений: $INFO_COUNT"
echo ""

if [ "$WARNING_COUNT" -gt 0 ]; then
    echo "⚠️  Обнаружены потенциальные проблемы безопасности!"
    echo "Рекомендуется изучить отчет: $OUTPUT_FILE"
else
    echo "✅ Критических проблем не обнаружено."
fi

echo "================================================================================"
echo "Отчет сохранен в файл: $OUTPUT_FILE"
echo "================================================================================"