База данных «Алушта» – это централизованная информационная система Министерства обороны РФ‚ предназначенная для учёта военнослужащих‚ их денежного довольствия‚ обеспечения жильём и прочих кадровых вопросов․ С момента своего создания (около 10 лет назад) система неоднократно передавалась разным подрядчикам и постоянно модернизировалась․
Технические возможности изменения данных
В Microsoft SQL Server‚ на котором построена «Алушта»‚ существуют несколько официальных механизмов‚ позволяющих фиксировать и контролировать изменения:
- Change Data Capture (CDC) – запись всех изменений в отдельные таблицы‑лог․ Включить/отключить CDC на уровне базы можно только через процедуру
sys․sp_cdc_enable_dbилиsys․sp_cdc_disable_db․ Для их выполнения пользователь должен быть членом предопределённой ролиsysadmin․ - CDC на уровне таблицы – процедуры
sys․sp_cdc_enable_tableиsys․sp_cdc_disable_tableтребуют ролиsysadminилиdb_ownerв конкретной базе․ - Триггеры (AFTER INSERT/UPDATE/DELETE) – часто используют для мгновенного аудита и отправки уведомлений․
- SQL‑audit – встроенный механизм аудита‚ фиксирующий кто‚ когда и какие команды выполнял․
Организационная структура доступа к «Алуште»
Изменять данные в системе могут только уполномоченные сотрудники‚ разделённые по ролям и подразделениям․ Ниже – типичные группы и их функции․
Системные администраторы (DBA)
Ответственны за:
- Создание и удаление баз‚ настройку ролей
sysadminиdb_owner; - Включение/отключение CDC и аудит‑логов;
- Регулярное резервное копирование (см․ инструкцию Альта‑Софт «Регулярное копирование базы данных»)․
Специалисты отдела кадров (HR)
Имеют роль db_owner в базе AlushtaDb и могут:
- Вводить и корректировать табельные номера‚ ФИО‚ звания;
- Обновлять статус службы (служебный‚ в отпуске‚ уволен и т․п․);
- Проводить массовую загрузку данных из Excel‑файлов через специальные процедуры․
Служба финансов (отдел начисления денежного довольствия)
Контролируют поля‚ связанные с выплатами‚ премиями и бонусами․ Доступ ограничен только к таблицам Payments и Bonuses․ Пример контактного лица:
- Иванов * — телефон:
+7 (* ) ‑‑‚ e‑mail:ivanov@minoborony․ru
Подрядчики‑разработчики (например‚ Альта‑Софт)
Имеют ограниченный доступ к тестовым и продакшн‑средам․ По договору они могут:
- Разрабатывать новые модули (например‚ модуль «Обеспечение жильём»);
- Выполнять миграцию данных;
- Проводить нагрузочное тестирование․
Контактные данные подрядчика (частично скрыты):
- Сергей Петров — телефон:
+7 (** ) ‑‑*‚ офис:ул․ ** 12‚ г․ Москва‚ 101000
Службы контроля доступа и безопасности
Отвечают за:
- Назначение ролей в Active Directory;
- Регулярный аудит прав доступа (ежемесячный отчёт);
- Обнаружение аномалий (например‚ попытки изменения чужих записей)․
Как происходит изменение данных «в живую»
- Инициирование запроса․ Сотрудник вводит запрос в Личный кабинет военнослужащего (например‚ изменение адреса проживания)․
- Проверка прав․ Система проверяет‚ принадлежит ли пользователь к роли
db_ownerили к группеHR․ - Запуск хранимой процедуры․ Если права достаточны‚ вызывается процедура
usp_UpdateSoldierInfo‚ которая:- Выполняет проверку бизнес‑правил (например‚ отсутствие открытых долгов);
- Записывает изменения в основную таблицу
Soldiers; - Создаёт запись в таблице аудита
AuditLog(кто‚ когда‚ какие поля изменил)․
- CDC фиксирует изменение․ Поскольку CDC включён‚ в системных таблицах
cdc․<имя_таблицы>_CTпоявляется строка с деталями изменения․ - Уведомление․ Триггер отправляет e‑mail в отдел кадров и в службу безопасности․
Примеры типовых ролей и их полномочий
| Роль | Краткое описание | Ключевые права |
|---|---|---|
| sysadmin | Системный администратор сервера SQL | Включение/отключение CDC‚ создание/удаление баз‚ управление логинами |
| db_owner | Владелец базы данных «Алушта» | Полный доступ к данным‚ возможность менять схему‚ управлять ролями внутри базы |
| HR_Manager | Менеджер отдела кадров | Изменение персональных данных‚ статусов‚ загрузка массовых файлов |
| Finance_Operator | Оператор финансового отдела | Работа с таблицами выплат‚ начисление премий‚ просмотр финансовой истории |
| Contractor_Dev | Разработчик‑подрядчик | Доступ к тестовым схемам‚ возможность деплоя новых модулей |
Как узнать‚ кто изменил запись
Для быстрого получения информации о последних изменениях достаточно выполнить запрос к CDC‑логам:
SELECT capture_instance‚ __$operation AS OperationCode‚ CASE __$operation WHEN 1 THEN 'DELETE' WHEN 2 THEN 'INSERT' WHEN 3 THEN 'UPDATE (BEFORE)' WHEN 4 THEN 'UPDATE (AFTER)' END AS Operation‚ __$update_mask AS ChangedColumns‚ * FROM cdc․fn_cdc_get_all_changes_'dbo_Soldiers'‚ @from_lsn‚ @to_lsn‚ N'all';
Кроме того‚ в таблице AuditLog хранится информация о пользователе Windows‚ который инициировал изменение:
SELECT LogID‚ UserName‚ ActionDate‚ TableName‚ ColumnName‚ OldValue‚ NewValue FROM AuditLog WHERE TableName = N'Soldiers' ORDER BY ActionDate DESC;
Примеры реальных контактов (частично скрыты)
- Главный специалист по учёту личного состава – Петрова *
Тел․:+7 ( ) ‑‑‚ e‑mail:petrova*@minoborony․ru - Руководитель отдела ИТ‑поддержки – Смирнов *
Тел․:+7 ( ) ‑‑‚ офис:пр․ * 45‚ г․ Санкт‑Петербург‚ 190000 - Контактный центр «Алушта» – телефон горячей линии:
8 (800) ‑‑*
Меры защиты от несанкционированных изменений
- Ролевое разграничение – каждый пользователь получает только те права‚ которые необходимы для выполнения его задач․
- Шифрование данных – столбцы с персональными данными (паспортные данные‚ СНИЛС) шифруются Transparent Data Encryption (TDE) и Always Encrypted․
- Аудит и мониторинг – включён
SQL Server Audit‚ а также сторонний SIEM‑сервис‚ который генерирует алерты при попытках изменения прав․ - Регулярные проверки – ежемесячные ревизии прав доступа‚ проводимые отделом внутреннего контроля․
- Резервное копирование – согласно инструкции Альта‑Софт‚ создаются 7 ежедневных полных копий и 1 еженедельный инкремент․
Изменять данные в базе «Алушта» могут только сотрудники‚ обладающие соответствующими ролями в SQL Server и в системе управления доступом Министерства обороны․ Технически процесс контролируется через CDC‚ триггеры и аудит‚ а организационно – через строгую иерархию ролей: системные администраторы‚ администраторы базы‚ кадровики‚ финансовый отдел и проверенные подрядчики․
Наличие нескольких уровней защиты (ролевой доступ‚ шифрование‚ аудит) позволяет быстро обнаруживать и реагировать на любые попытки несанкционированных изменений‚ что особенно важно для такой чувствительной системы‚ как единая база данных военнослужащих «Алушта»․
Дата публикации: