Категория
Информатика
Тип
реферат
Страницы
2 стр.
Дата
08.01.2009
Формат файла
.rtf — Rich Text Format (Wordpad)
Архив
20734.zip — 20.52 kb
  • row-level-security-v-rsubd_20734_1.rtf — 130.55 Kb
  • Readme_docus.me.txt — 125 Bytes
Рейтинг
10  из 10
Оценок
1
Оцените работу
Хорошо  или  Плохо


Текст работы

InRole(rolename). Если в используемую СУБД встроена подобная функциональность - прекрасно, лучше всего использовать именно ее. В таком случае субъекты безопасности будут образовывать единое пространство как для встроенной безопасности СУБД, так и для
наших расширений.
Если же СУБД не предоставляет средств поддержки групп или ролей, то их тоже придется реализовывать вручную. Одним из простейших способов является создание специальной таблицы, содержащей список групп или ролей, и связь ее с таблицей пользователей. В зависимости от потребностей, можно выбрать различные схемы. Если пользователь может входить только в одну группу, то достаточно добавить ссылку на группу в таблицу пользователей. А если ему может быть назначено одновременно несколько ролей, то для связи
надо будет создать отдельную таблицу.
В таких случаях предикат IsInRole(rolename) принимает вид:
exists(select * from users where ID = CurrentID() and user_group = rolename)
или
exists(select *
from Roles
where RoleName = rolename and ID = CurrentID())
В дальнейшем мы будем подразумевать под выражением IsInRole(rolename) либо подходящую
встроенную функцию СУБД, либо предикат, построенный вручную в соответствии с выбранной моделью.
Ограничения на основе существующих
атрибутов
Если правила корпоративной политики выражаются в терминах предметной области, то можно сформировать соответствующий предикат безопасности в терминах данных, хранимых в СУБД.
В самом простом случае достаточно данных из той же таблицы. Предположим,
доступ к еженедельным документам финансовой отчетности компании определяется следующими правилами:
младшие финансовые аналитики имеют право чтения отчетов старше шести месяцев;
старшие финансовые



Ваше мнение



CAPTCHA