Система безопасности сервера баз данных
Министерство
образования и науки Российской Федерации
Федеральное
государственное бюджетное
образовательное
учреждение
высшего
профессионального образования
«Владимирский
государственный университет
имени
Александра Григорьевича и Николая Григорьевича Столетовых»
(ВлГУ)
Кафедра
«Вычислительная техника»
Лабораторная
работа № 3
по
дисциплине
«Управление
базами данных»
«Система
безопасности сервера баз данных»
Выполнил:
ст. гр. ВТ-109
Герасимов А. В.
Принял:
Гладьо С.С.
Владимир
2012
Вариант №8
Цель работы: получить навыки в обеспечении
безопасности сервера баз данных.
Петров1: Может создавать новые учетные записи.
Не имеет доступ к базе данных.
Петров2: Не может выполнять действий по
конфигурированию сервера. Может читать данные из Таблица1 и Таблица2, но не
может читать данные из Таблица3 и Таблица4. Может создавать новые таблицы.
Петров3: Может только выполнять не системные
хранимые процедуры.
Петров4: Может только добавлять данные в
Таблица3.
Петров1 и Петров2 работают в одном отделе,
работникам которого предоставлено разрешение на чтение, изменение и добавление
данных в Таблица1 и Таблица2.
Петров3 и Петров4 не имеют доступа к Таблица1 и
Таблица2.
Разработать хранимую процедуру, которая
добавляет данные в Таблица1, Таблица2, Таблица3, Таблица4. Сделать так, чтобы
добавление с помощью этой хранимой процедуры мог выполнить любой пользователь
базы данных (воспользоваться ролью приложения).
Ход работы.
ФИО=<[id],
[ФИО]>
Должность=<[id],
[Должность]>
Часы=<[id],
[Часы]>
Проекты =<[id],
[Проект]>
Создание БД и таблиц
DATABASE lab3DB;lab3DB;TABLE FIO ( id
int,varchar(20) )TABLE POST ( id int,varchar(20) )TABLE PROJECT ( id
int,varchar(20) )TABLE HR ( id int,int )
Создание пользователей БД
LOGIN petrov1 WITH PASSWORD = '100';LOGIN
petrov2 WITH PASSWORD = '200';LOGIN petrov3 WITH PASSWORD = '300';LOGIN petrov4
WITH PASSWORD = '400';LOGIN petrov5 WITH PASSWORD = '500';USER Petrov1 FOR
LOGIN petrov1;USER Petrov2 FOR LOGIN petrov2;USER Petrov3 FOR LOGIN
petrov3;USER Petrov4 FOR LOGIN petrov4;USER Petrov5 FOR LOGIN petrov5;
Ограничение доступа для пользователей
база данное пользователь
безопасность сервер
Петров1 может создавать новые учетные записи. Не
имеет доступ к базе данных:
EXEC sp_addsrvrolemember 'petrov1',
'securityadmin';
GRANT SELECT ON FIO TO petrov2SELECT ON POST TO
petrov2SELECT ON PROJECT TO petrov2SELECT ON HR TO petrov2CREATE TABLE TO
petrov2
Петров3 может выполнять только не системные
хранимые процедуры:PROCEDURE counter@num int@num = count(id) from FIO;@numEXEC
ON counter TO petrov3
Петров4 может только добавлять данные в
Таблица3:
GRANT INSERT ON PROJECT TO petrov4
Петров1 и Петров2 работают в одном отделе,
работникам которого предоставлено разрешение на чтение, изменение и добавление
данных в Таблица1 и Таблица2:
CREATE ROLE otd1SELECT, UPDATE, INSERT ON FIO TO
otd1SELECT, UPDATE, INSERT ON POST TO otd1sp_addrolemember 'otd1',
'petrov1'sp_addrolemember 'otd1', 'petrov2'
Петров3 и Петров4 не имеют доступа к Таблица1 и
Таблица2:
CREATE ROLE otd2SELECT, UPDATE, INSERT ON FIO TO
otd2SELECT, UPDATE, INSERT ON POST TO otd2sp_addrolemember 'otd2',
'petrov3'sp_addrolemember 'otd2', 'petrov4'
Хранимая процедура, доступная всем пользователям
PROCEDURE insertion@num int@num = count(id) from
FIO;@num=@num+1;INTO FIO VALUES (@num+1, 'Петров')INTO POST VALUES (@num+1,
'Руководитель')INTO PROJECT VALUES (@num+1, 'Контроль')INTO HR VALUES (@num+1,
'8')APPLICATION ROLE APPLROLE WITH PASSWORD = 'pass';EXEC ON insertion to APPLROLE
Скрипты для проверки ограничений:
lab3DBLOGIN petrov6 WITH PASSWORD = '600';* FROM
FIO* FROM POST* FROM PROJECT* FROM HRINTO FIO VALUES (100, 'Иванов')INTO
PROJECT VALUES (100, 'Руководство')INTO POST VALUES (100, 'Консультант')INTO HR
VALUES (100, 8)TABLE TASK ( id int,varchar(20) )counter
sp_setapprole 'APPLROLE', 'pass'insertion
Петров1:
Петров3:
Петров4:
Петров5:
Выводы
в ходе выполнения лабораторной работы были
изучены методы обеспечения безопасности сервера базы данных. Также были созданы
пользователи с ограниченным доступом и написаны скрипты для проверки
безопасности БД.