Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
курсач / Наволоцкий_1302_v2.docx
Скачиваний:
0
Добавлен:
27.12.2025
Размер:
2.47 Mб
Скачать

8. Безопасность

Для обеспечения конфиденциальности и целостности данных в системе реализована многоуровневая модель безопасности на основе ролей [2]. Главной особенностью разработанного решения является отказ от использования стандартной схемы dbo и назначение прав доступа на уровне пользовательских схем (Schema-Level Permissions). Это значительно упрощает администрирование: новые объекты, добавляемые в схему, автоматически наследуют права доступа, установленные для этой схемы [3].

8.1. Уровни аутентификации и авторизации

Система безопасности построена по иерархическому принципу:

  1. Уровень сервера (Logins): Созданы учетные записи User_Manager и User_Engineer. Они обеспечивают аутентификацию (проверку пароля) при подключении к экземпляру SQL Server.

  2. Уровень базы данных (Users): Логинам сервера сопоставлены пользователи базы данных Manager и Engineer.

  3. Уровень ролей и схем (Roles & Schemas): Права доступа назначаются не пользователям напрямую, а ролям базы данных, в которые включаются пользователи.

8.2. Ролевая модель разграничения доступа

В системе реализованы две функциональные роли с четко разграниченными полномочиями:

  1. Роль «Менеджер» (Role_SeeReports) Предназначена для сотрудников, занимающихся аналитикой.

    1. Права: Предоставлено право SELECT на схемы [Stock] и [Ref].

    2. Ограничения: Полный запрет на изменение данных. Пользователь не имеет прав INSERT, UPDATE, DELETE ни на одну таблицу, а также не может запускать процедуры модификации.

  2. Роль «Инженер» (Role_ComponentEditor)

Предназначена для технических специалистов, работающих с данными.

    1. Права:

      1. EXECUTE ON SCHEMA::[Stock] — разрешает выполнение всех хранимых процедур в оперативной схеме (поиск, создание, импорт).

      2. SELECT ON SCHEMA::[Ref] — разрешает чтение справочников (необходимо для работы выпадающих списков и процедур поиска).

    2. Принцип наименьших привилегий: Инженеру не выданы прямые права на вставку или удаление записей в таблицах (GRANT INSERT/DELETE). Все изменения осуществляются строго через хранимые процедуры, что гарантирует прохождение всех проверок бизнес-логики и транзакционную целостность.

8.3. Тестирование системы безопасности

Для подтверждения корректности настроек безопасности был проведен эксперимент, имитирующий попытку несанкционированного доступа.

Сценарий теста:

  1. Выполнено переключение контекста безопасности на пользователя Manager (команда EXECUTE AS USER) [4].

  2. Предпринята попытка выполнить деструктивное действие — удаление справочной таблицы [Ref].[Manufacturers].

  3. Предпринята попытка вызвать процедуру создания компонента, доступную только инженерам.

Результат: В обоих случаях СУБД заблокировала выполнение операций, вернув ошибку об отсутствии прав доступа. Это подтверждает, что изоляция на уровне схем и ролей функционирует корректно.

Рисунок 7 – Демонстрация отказа в доступе при попытке удаления таблицы пользователем с ограниченными правами

Соседние файлы в папке курсач