- •Курсовой проект
- •Реферат
- •Содержание
- •Введение
- •Создание базы данных
- •Концептуальная модель базы данных «Магазин»
- •Создание базы данных в ms sql Server
- •Создание таблиц
- •Заполнение таблиц базы данных информацией
- •Создание внешних ключей
- •Выбор значений полей из таблиц бд для получения списка отгрузок
- •Разграничение прав доступа
- •Резервное копирование и восстановление
- •Использование команд backup и restore
- •Заключение
- •Список используемой литературы
Выбор значений полей из таблиц бд для получения списка отгрузок
Для вывода на экран списка отгрузок используется оператор SELECT. Так как выборка осуществляется из нескольких связанных таблиц, нужно также применить оператор INNER JOIN, предназначенную для объединения таблиц по ключевым полям, значения которых совпадают. Поставленная задача решается с помощью следующего запроса:
USE Shop
SELECT P.NamePurchaser,D.DateDocument,Pr.NameProduct,S.NameStorage,B.AccountBill,B.SumBill
FROM Shipment as Sh
INNER JOIN Purchaser as P
ON Sh.PurchaserID=P.PurchaserID
INNER JOIN Document as D
ON Sh.DocumentID=D.DocumentID
INNER JOIN Product as Pr
ON Sh.ProductID=Pr.ProductID
INNER JOIN Storage as S
ON Sh.StorageID=S.StorageID
INNER JOIN Bill as B
ON Sh.BillID=B.BillID
GO
Результатом является выборка, представленная на рисунке 3 и содержащая информацию о:
название фирмы;
дата заключения договора;
название склада;
номер накладной.
Рисунок 3 – Список отгрузок магазина
Разграничение прав доступа
Некоторые пользователи, исходя из соображений безопасности и сохранения конфиденциальности, должны иметь ограниченный доступ к определенным таблицам. В связи с этим определяем следующие роли, которые могут иметь ограниченные права на создание, удаление или просмотр некоторых таблиц:
Директор магазина (Director) – имеет полный доступ ко всем таблицам и права на обновление, добавление, удаление и чтение записей в них.
Логист (Logist) – в магазине имеется логист, который отвечает за поставки покупателю. Он имеет право для чтения всех таблиц, кроме таблицы «Поставки», в которой также может добавлять, обновлять и удалять записи.
Менеджер (Menedger) – в магазине имеется менеджер, который отвечает за заключение договор с покупателями. Он имеет право для чтения всех таблиц, кроме таблиц «Покупатели» и «Договора», в которых также может добавлять, обновлять и удалять записи.
По умолчанию при создании ролей запрещены все действия. Поэтому для каждой роли назначаем возможность проводить некоторые манипуляции с таблицами с помощью оператора GRANT, согласно вышеперечисленным правилам.
Необходимо создать логин, пароль и пользователя, которому назначается определенная роль с помощью хранимой процедуры SP_addrolemember.
Создание роли директора салона красоты и назначение её пользователю Петров С.К., имеющему логин Petrov, осуществляется с помощью следующего запроса:
CREATE ROLE Director
GRANT INSERT,UPDATE,DELETE,SELECT ON Purchaser
TO Director
GRANT INSERT,UPDATE,DELETE,SELECT ON Document
TO Director
GRANT INSERT,UPDATE,DELETE,SELECT ON Product
TO Director
GRANT INSERT,UPDATE,DELETE,SELECT ON Delivery
TO Director
GRANT INSERT,UPDATE,DELETE,SELECT ON Storage
TO Director
GRANT INSERT,UPDATE,DELETE,SELECT ON Bill
TO Director
GRANT INSERT,UPDATE,DELETE,SELECT ON Shipment
TO Director
CREATE LOGIN Petrov
WITH PASSWORD='qwerty'
CREATE USER Petrov_SK
FOR LOGIN Petrov
EXEC SP_addrolemember
@rolename=Director,
@membername=Petrov_SK
GO
Логист имеют полный доступ только к таблице «Погрузка», в остальных – только чтение. Запрос для создания роли Logist и назначения её пользователю Саловова В.К., осуществляется с помощью следующего запроса:
CREATE ROLE Logist
GRANT SELECT ON Purchaser
TO Logist
GRANT SELECT ON Document
TO Logist
GRANT SELECT ON Product
TO Logist
GRANT INSERT,UPDATE,DELETE,SELECT ON Delivery
TO Logist
GRANT SELECT ON Storage
TO Logist
GRANT SELECT ON Bill
TO Logist
GRANT SELECT ON Shipment
TO Logist
CREATE LOGIN Salova
WITH PASSWORD='ytrewq'
CREATE USER Salova_BK
FOR LOGIN Salova
EXEC SP_addrolemember
@rolename=Logist,
@membername=Salova_BK
GO
Менеджер может просматривать все таблицы базы данных в режиме «только чтение», кроме таблицы «Покупатели» и «Договора», где он также имеет право удалять, добавлять и обновлять записи. С помощью представленного ниже запроса создается пользователь Федотов А.Б. с ролью Menedger:
CREATE ROLE Menedger
GRANT INSERT,UPDATE,DELETE,SELECT ON Purchaser
TO Menedger
GRANT INSERT,UPDATE,DELETE,SELECT ON Document
TO Menedger
GRANT SELECT ON Product
TO Menedger
GRANT SELECT ON Delivery
TO Menedger
GRANT SELECT ON Storage
TO Menedger
GRANT SELECT ON Bill
TO Menedger
GRANT SELECT ON Shipment
TO Menedger
CREATE LOGIN Fedotov
WITH PASSWORD='zxcvb'
CREATE USER Fedotov_AB
FOR LOGIN Fedotov
EXEC SP_addrolemember
@rolename=Menedger,
@membername=Fedotov_AB
GO
Разграничение прав для всех пользователей, имеющих доступ к БД, сделано. Теперь, при попытке изменить данные таблицы, сотрудники, не имеющие на это разрешения, получат сообщение об ошибке. Подобный подход позволяет защитить данные от несанкционированного доступа, создать определенную политику безопасности, где сотрудники обладают набором прав работы с БД в соответствии с занимаемой ими должностью.
