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