IMetabaseGroup.Role

Синтаксис Fore

Role: String;

Синтаксис Fore.NET

Role: String;

Описание

Свойство Role определяет роль СУБД Oracle, которая сопоставлена данной группе пользователей.

Комментарии

Свойство актуально только для доменных групп пользователей. При добавлении доменной группы в менеджер безопасности репозитория в качестве значения свойства Role указывается наименование группы. При необходимости его можно изменить.

Значение свойства Role используется, если вход в репозиторий осуществляется с использованием доменной авторизации и используются уровни безопасности. При подключении доменного пользователя, который отсутствует в менеджере безопасности репозитория, осуществляется проверка вхождения пользователя в доменные группы, которые подключены в менеджере безопасности. Если пользователь входит в какую-либо доменную группу, то проверяется соответствие роли, заданной для группы тем ролям, которые созданы на сервере СУБД. Если на сервере имеется указанная роль, то осуществляется подключение пользователя в соответствии с заданным для группы уровнем безопасности. Иначе выдается соответствующее сообщение об ошибке.

Пример Fore

Для выполнения примера добавьте ссылку на системную сборку Metabase.

Sub AddDomainGroup;
Var
    MB: IMetabase;
    MBSec: IMetabaseSecurity;
    Search: ISecuritySubjectsSearch;
    Subjects: ISecuritySubjects;
    Subject: ISecuritySubject;
Begin
    MB := MetabaseClass.Active;
    MBSec := MB.Security;
    //Объект для поиска пользователей
    Search := MBSec.NewSubjectsSearch;
    Search.NameCriteria := "TestGroup";
    //Поиск только доменных пользователей
    Search.AreaIncludeDB := False;
    Search.AreaIncludeNT := True;
    Search.SubjectCriteria(SecuritySubjectType.Group) := True;
    Search.ExecuteSearch;
    //Найденные пользователи
    Subjects := Search.Subjects;
    If Subjects.Count > 0 Then
        //Установка параметров добавления доменной группы
        MBSec.CurrentDomainSubjectAddState(SecuritySubjectType.Group) :=
            DomainSubjectAddState.MakeExternalOn
            Or DomainSubjectAddState.ManageDBGrantsOff;
            //Добавление доменной группы
            Subject := MBSec.AddNTSubject(Subjects.Item(0));
            (Subject As IMetabaseGroup).Role := "GUEST";
        //Применение политики безопасности
        MBSec.Apply;
    End If;
End Sub AddDomainGroup;

При выполнении примера среди доменных субъектов безопасности осуществляется поиск группы «TestGroup». Если группа найдена, то она будет добавлена в список групп менеджера безопасности репозитория. На сервере СУБД группа создана не будет, права на объекты репозитория розданы не будут. Для группы будет определена роль «GUEST».

Пример Fore.NET

Необходимые требования и результат выполнения примера Fore.NET совпадают с примером Fore.

Imports Prognoz.Platform.Interop.Metabase;

Public Shared Sub Main(Params: StartParams);
Var
    MB: IMetabase;
    MBSec: IMetabaseSecurity;
    Search: ISecuritySubjectsSearch;
    Subjects: ISecuritySubjects;
    Subject: ISecuritySubject;
Begin
    MB := Params.Metabase;
    MBSec := MB.Security;
    //Объект для поиска пользователей
    Search := MBSec.NewSubjectsSearch();
    Search.NameCriteria := "TestGroup";
    //Поиск только доменных пользователей
    Search.AreaIncludeDB := False;
    Search.AreaIncludeNT := True;
    Search.SubjectCriteria[SecuritySubjectType.sstGroup] := True;
    Search.ExecuteSearch();
    //Найденные пользователи
    Subjects := Search.Subjects;
    If Subjects.Count > 0 Then
        //Установка параметров добавления доменной группы
        MBSec.CurrentDomainSubjectAddState[SecuritySubjectType.sstGroup] :=
            DomainSubjectAddState.dsasMakeExternalOn
            Or DomainSubjectAddState.dsasManageDBGrantsOff;
            //Добавление доменной группы
            Subject := MBSec.AddNTSubject(Subjects.Item[0]);
            (Subject As IMetabaseGroup).Role := "GUEST";
        //Применение политики безопасности
        MBSec.Apply();
    End If;
End Sub;

См. также:

IMetabaseGroup