В таком случае доступ предоставляется всем, кроме
указанных ролей, да и они лишены доступа только к ограниченной части данных.
Соединив эти два подхода, мы получим возможность как
«карать», так и «миловать» пользователей:
(-- секция разрешений
(IsUserInRole(<role1>)
AND <role1_restrictions>)
OR ...
(IsUserInRole(<roleN>)
AND <roleN_restrictions>)
)
AND NOT
(-- секция запретов
(IsUserInRole(<restricted_role1>) [AND
<restricted_role1_restrictions>])
OR ...
(IsUserInRole(<restricted_roleN>)
[AND <restricted_roleN_restrictions>])
)
|
Такой принцип защиты очень похож на используемый в
Windows NT.
Рассмотрим варианты применения данной техники на
примере базы данных Northwind, которая входит в поставку MS SQL Server.
Локальные атрибуты
В простейшем случае предикаты для всех ролей зависят
только от значений полей защищаемой записи. Рассмотрим таблицу Orders
(несущественные для рассматриваемой задачи ограничения пропущены):
CREATE TABLE Orders (
OrderID int IDENTITY(1, 1) NOT
NULL ,
CustomerID nchar(5) NULL ,
EmployeeID int NULL ,
OrderDate datetime NULL ,
RequiredDate datetime NULL ,
ShippedDate datetime NULL , Рекомендуем скачать другие рефераты по теме: оценка реферата, диплом анализ.
Предыдущая страница реферата | 1
2
3
4
5
6
7
8
9
10 | Следующая страница реферата
|
|