Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Кашина_ТРиЗБД_ЛБ7

.docx
Скачиваний:
0
Добавлен:
03.12.2025
Размер:
524.64 Кб
Скачать

Министерство науки и высшего образования Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего образования

«Владимирский государственный университет

имени Александра Григорьевича и Николая Григорьевича Столетовых» (ВлГУ)

Колледж инновационных технологий и предпринимательства

КАФЕДРА ФИЗИКИ И ПРИКЛАДНОЙ МАТЕМАТИКИ

Лабораторная работа № 7

по дисциплине «Технология разработки и защиты баз данных»

на тему: «Основные принципы управления учетными записями и ролями в MS SQL Server»

Выполнил

студент группы ИПсп-123

Кашина Д. А.

Принял

Кабанова М.Ю.

Владимир, 2025

Цель работы: познакомится с основными принципами управления учетными записями и ролями.

Контрольные вопросы:

  1. Какие фиксированные серверные роли существует?

Ответ: В SQL Server существуют фиксированные серверные роли — встроенные роли, которые имеют фиксированный набор разрешений и область действия в масштабах всего сервера. Они предназначены для использования при администрировании SQL Server, и назначенные им разрешения не могут быть изменены. Например sysadmin —может выполнять любые действия на сервере.

  1. Кто такой грантор?

Ответ: Грантор – это пользователь, предоставивший привилегию другому. Привилегия является предоставляемой, если право на нее можно предоставить другим пользователям.

  1. Роли уровня сервера и роли уровня базы данных.

Ответ: Перечень ролей БД:

  • Public – минимальные права доступа к БД (на просмотр)

  • Db_owner – может выполнять любые действия с БД

  • Db_accessadmin – добавляет и удаляет пользователей БД

  • Db_sequrityadmin – управляет ролями в БД и разрешениями на запуск команд и работу с объектами БД

  • Db_ddladmin – добавляет, изменяет и удаляет объекты БД

  • Db_backupoperator – осуществляет резервное копирования БД

  • Db_dataSTUDENT – может просматривать все данные в каждой таблице в БД

  • Db_datawriter – может добавлять, удалять и изменять данные в каждой таблице в БД

  • Db_denydataSTUDENT – запрет на просмотр всех данных в каждой таблице в БД

  • Db_denydatawriter – запрет на добавление, удаление и изменение всех данных в каждой таблице в БД

  1. Как создать роль БД?

Ответ:

Создание роли уровня базы данных показано двумя способами:

1. С помощью системной хранимой процедуры sp_addrole

2. Через графический интерфейс SQL Server Management Studio (SSMS):

  1. Как осуществляется управление авторизацией?

Ответ: Пользователь может войти в систему баз данных, используя учетную запись пользователя Windows или регистрационное имя входа в SQL Server. Для последующего доступа и работы с определенной базой данных пользователь также должен иметь учетную запись пользователя базы данных. Для работы с каждой отдельной базой данных требуется иметь учетную запись пользователя именно для этой базы данных.

  1. Как осуществляется управление разрешениями?

Ответ: SQL Server предоставляет роли уровня сервера и помогает управлять разрешениями на сервере. Эти роли являются субъектами безопасности, группирующими других участников. Разрешения ролей уровня сервера распространяются на весь сервер.

  1. Пояснить команды GRANT, REVOKE, DENY.

Ответ:

С помощью оператора GRANT (предоставлять) для каждого пользователя формируется список привилегий, привилегии управляют работой сервера данных с точки зрения защиты данных. Выполнению каждой транзакции предшествует проверка привилегий пользователя, сеанс которого породил транзакцию.

REVOKE (отменять) -оператор изымания роли у пользователя и отмены привилегий.

DENY (отрицать) - Этот пример запрещает несколько системных привилегий для нескольких пользователей. Пользователи не могут использовать системные привилегии CREATE DATABASE or CREATE TABLE, если они не наделены ими через команду GRANT.

Ход работы:

Пример 1.

/*Пример 1. Пример создания роли декана */

USE University_Кашина_Диана --сделать текущей БД University

EXEC sp_addrole 'DEKAN'

Пример 2.

/*Пример 2. Пример создания роли студента*/

USE University_Кашина_Диана --сделать текущей БД University

EXEC sp_addrole 'STUDENT'

Пример 3.

USE University_Кашина_Диана

--предоставление прав роли Декана

GRANT DELETE, INSERT, UPDATE, SELECT ON Discuplinu TO DEKAN

GRANT EXECUTE TO DEKAN

/*у декана есть права на просмотр, добавление, изменение, удаление записей*/

--предоставление прав роли студент

GRANT SELECT ON Discuplinu TO STUDENT

/*у студента права только на чтение*/

Пример 4.

/* Пример 4. Пример создания декана Ivanov_Dek и присвоения ему роли*/

EXEC sp_addlogin 'Ivanov_Dek','Ivanov', 'University_Кашина_Диана'

USE University_Кашина_Диана

EXEC sp_adduser 'Ivanov_Dek','Ivanov_Dek'

EXEC sp_addrolemember 'DEKAN', 'Ivanov_Dek';

/*Пример 5. Пример создания студент Petrov_Stud и присвоения роли*/

EXEC sp_addlogin 'Petrov_Stud','Petrov', 'University_Кашина_Диана'

USE University_Кашина_Диана

EXEC sp_adduser 'Petrov_Stud','Petrov_Stud'

EXEC sp_addrolemember 'STUDENT', 'Petrov_Stud'

Самостоятельное задание.

Свойства роли STUDENT

Пример 6.

/*Пример 6.

Удаление пользователя из роли*/

use University_Кашина_Диана

EXEC sp_droprolemember 'STUDENT', 'Petrov_Stud'

Задания по собственному варианту.

Создание ролей

/*Кашина 17.10.25

Создание ролей*/

USE Pizzaria

CREATE ROLE DirectorRole;

CREATE ROLE CourierRole;

CREATE ROLE ClientRole;

Назначение привилегий

/*Кашина 17.10.25

назначение привилегий*/

USE Pizzaria;

-- 1. Назначение привилегий для ДИРЕКТОРА (полный доступ)

GRANT SELECT, INSERT, UPDATE, DELETE ON [Client] TO DirectorRole;

GRANT SELECT, INSERT, UPDATE, DELETE ON [Courier] TO DirectorRole;

GRANT SELECT, INSERT, UPDATE, DELETE ON [Order] TO DirectorRole;

GRANT SELECT, INSERT, UPDATE, DELETE ON [Pizza] TO DirectorRole;

GRANT SELECT, INSERT, UPDATE, DELETE ON [Pizza_Order] TO DirectorRole;

GRANT SELECT, INSERT, UPDATE, DELETE ON [Pizza_Size] TO DirectorRole;

GRANT SELECT, INSERT, UPDATE, DELETE ON [Pizzeria] TO DirectorRole;

GO

-- 2. Назначение привилегий для КУРЬЕРА

GRANT SELECT ON [Order] TO CourierRole; -- Просмотр заказов

GRANT SELECT ON [Client] TO CourierRole; -- Просмотр данных клиента (адрес, телефон)

GRANT SELECT ON [Pizza_Order] TO CourierRole; -- Просмотр состава заказов

GRANT SELECT ON [Pizza] TO CourierRole; -- Просмотр информации о пиццах

GRANT UPDATE ON [Order] (Order_Status) TO CourierRole; -- Обновление статуса заказа (доставлен, в пути)

GRANT UPDATE ON [Order] (ID_Courier) TO CourierRole; -- Назначение себя на заказ

GRANT SELECT ON [Courier] TO CourierRole; -- Просмотр информации о курьерах

GRANT UPDATE ON [Courier] (Employment_Status) TO CourierRole; -- Обновление своего статуса (активен, занят)

GO

-- 3. Назначение привилегий для КЛИЕНТА

GRANT SELECT ON [Pizza] TO ClientRole; -- Просмотр меню пицц

GRANT SELECT ON [Pizza_Size] TO ClientRole; -- Просмотр цен

GRANT SELECT ON [Pizzeria] TO ClientRole; -- Просмотр пиццерий

GRANT SELECT, INSERT ON [Client] TO ClientRole; -- Регистрация и просмотр своего профиля

GRANT SELECT, INSERT ON [Order] TO ClientRole; -- Создание и просмотр своих заказов

GRANT SELECT, INSERT ON [Pizza_Order] TO ClientRole; -- Добавление пицц в заказ

GRANT SELECT ON [Courier] TO ClientRole; -- Просмотр доступных курьеров

Создание пользователей

/*Кашина 17.10.25

создание пользователей*/

USE Pizzaria

EXEC sp_addlogin 'Director_Login', 'Director123', 'Pizzaria';

EXEC sp_adduser 'Director_Login', 'Director_User';

EXEC sp_addrolemember 'DirectorRole', 'Director_User';

EXEC sp_addlogin 'Courier_Login', 'Courier123', 'Pizzaria';

EXEC sp_adduser 'Courier_Login', 'Courier_User';

EXEC sp_addrolemember 'CourierRole', 'Courier_User';

EXEC sp_addlogin 'Client_Login', 'Client123', 'Pizzaria';

EXEC sp_adduser 'Client_Login', 'Client_User';

EXEC sp_addrolemember 'ClientRole', 'Client_User';

Вывод: в ходе лабораторной работы были изучены основные принципы управления учетными записями и ролями.