Дескриптор безопасности

Материал из GedeminWiki
Версия от 03:14, 7 ноября 2006; SYSDBA (обсуждение | вклад)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Дескриптор безопасности -- это 32-х битовое целое число содержащее битовую маску групп пользователей обладающих определенным правом доступа. Если n-ый бит в дескрипторе установлен, следовательно группа пользователей с id=n обладает указанным правом.

Разграничение доступа на уровне записи

Одно из применений дескриптора безопасности -- это разграничение доступа к отдельным записям в таблице. Для этого в таблицу добавляются от одного до трех полей имеющих предопределенные названия: AVIEW, ACHAG, AFULL. Тип полей задается доменом dsecurity.

Поле AVIEW определяет какие группы имеют право на просмотр записи, ACHAG определяет множество групп имеющие право на изменение записи и, наконец, AFULL -- дескриптор безопасности полного доступа к записи (просмотр, изменение, удаление, печать, изменение прав доступа).


Набор групп текущего пользователя

Множество групп, в которые входит текущий пользователь, задается битовой маской, хранящейся в свойстве InGroup глобального объекта IBLogin.

Ниде приводится пример кода, который позволяет получить строку с наименованиями всех групп, в которые входит текущий пользователь системы:


...
  dim Creator, UG, InGroups
  set Creator = new TCreator
  set UG = Creator.GetObject(Application, "TgdcUserGroup", "")
  InGroups = "" 
  UG.Open
  do while not UG.EOF
    if ((2 ^ (UG.id - 1)) and IBLogin.InGroup) <> 0 then
      if InGroups > "" then
        InGroups = InGroups & ", "
      end if
      InGroups = InGroups & UG.FieldByName("name").AsString
    end if
    UG.Next
  loop
...

Персональные инструменты
Пространства имён

Варианты
Действия
Навигация
Инструменты