3 курс / БСБД2 Лабораторная работа 2
.pdfМинистерство науки и высшего образования Российской Федерации Федеральное государственное автономное образовательное учреждение высшего образования
ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ (ТУСУР)
Кафедра комплексной информационной безопасности электронновычислительных систем (КИБЭВС)
РАЗДЕЛЕНИЕ ПРАВ ДОСТУПА Отчет по лабораторной работе №2
по дисциплине «Безопасность систем баз данных»
Студент гр. 7x3-x
_______ xxxxxxxxxxx
_______
Приняла: Преподаватель кафедры КИБЭВС
_______ Романова Е.С.
_______
Томск 2025
Введение
Целью работы является изучение принципов работы разделения прав доступа в базах данных на примере СУБД Microsoft SQL Server.
Постановка задачи:
1.Составить матрицу доступа согласно роли по варианту №2.
2.На основании заданной в варианте профессии создать роль уровня базы данных и пару имя входа/имя пользователя, определить круг данных, к которым должен выделяться доступ, и на основании этого круга выбрать минимум 5 таблиц и права доступа к ним и выдать определённые права доступа созданной роли.
2
1 ХОД РАБОТЫ
1.1 Составление матрицы доступа
Согласно варианту №2 главной ролью является работник, ведущий собеседование по найму на работу.
Матрица доступа представлена в таблице 1.1. Все таблицы в матрице взяты из базы данных AdventureWorks2017.
Таблица 1.1 — Матрица доступа
Пользователь |
Работник, ведущий собеседование |
Таблицы |
|
|
|
HumanResources.Employee |
SELECT |
|
|
HumanResources.EmployeeDepartmentHistory |
SELECT |
|
|
HumanResources.JobCandidate |
SELECT |
|
UPDATE |
|
DELETE |
|
|
HumanResources.Department |
SELECT |
|
|
HumanResources.Shift |
SELECT |
|
|
HumanResources.EmployeePayHistory |
- |
|
|
На основе данной матрицы доступа были созданы роли и имена входа на уровнях сервера и базы данных.
3
1.2 Создание роли и имени входа
Была создана роль работника, ведущего собеседование по найму на работу, в базе данных AdventureWorks2017 (рисунок 1.1).
Рисунок 1.1 – Создание роли работника
Был разграничен доступ для роли «recruiter» командами согласно таблице
1.1 (рисунок 1.2).
Рисунок 1.2 – Разграничение доступа
Были созданы имена для входа на уровне сервера (рисунок 1.3).
4
Рисунок 1.3 – Создание имен для входа на уровне сервера
Были созданы имена пользователей для входа на уровне БД, используя зарегистрированные логины (рисунок 1.4).
Рисунок 1.4 – Создание имен для входа на уровне БД
Каждый созданный пользователь был наделен ролью, созданной ранее (рисунок 1.5).
Рисунок 1.5 – Наделение ролью
Чтобы была возможность подключаться к СУБД, имея логин и пароль, были выставлены соответствующие разрешения (рисунок 1.6, рисунок 1.7).
5
Рисунок 1.6 – Свойства сервера
Рисунок 1.7 – Выбор проверки подлинности
6
Было выставлено разрешение на подключение к SQL Server с помощью протокола TCP/IP в диспетчере конфигурации SQL Server (рисунок 1.8).
Рисунок 1.8 – Разрешение на подключения по протоколу TCP/IP
Был выполнен перезапуск служб SQL. Было выполнено подключение к СУБД, используя данные, позволяющие войти с ролью «recruiter» (рисунок 1.9).
Рисунок 1.9 – Подключение к СУБД
7
Таблицы, которые теперь доступны для пользователя с данной ролью представлены на рисунке 1.10.
Рисунок 1.10 – Доступные таблицы
Был проверен функционал роли (рисунок 1.11).
Рисунок 1.11 – Проверка команды SELECT для роли «recruiter»
8
Рисунок 1.12 – Проверка команды UPDATE для роли «recruiter»
Рисунок 1.13 – Проверка команды INSERT для роли «recruiter»
Рисунок 1.14 – Проверка команды DELETE для роли «recruiter»
9
Заключение
В ходе выполнения данной работы были изучены принципы работы разделения прав доступа в базах данных на примере СУБД MS SQL Server.
10
