Role: String;
Role: String;
Свойство Role определяет роль СУБД Oracle, которая сопоставлена данной группе пользователей.
Свойство актуально только для доменных групп пользователей. При добавлении доменной группы в менеджер безопасности репозитория в качестве значения свойства Role указывается наименование группы. При необходимости его можно изменить.
Значение свойства Role используется, если вход в репозиторий осуществляется с использованием доменной авторизации и используются уровни безопасности. При подключении доменного пользователя, который отсутствует в менеджере безопасности репозитория, осуществляется проверка вхождения пользователя в доменные группы, которые подключены в менеджере безопасности. Если пользователь входит в какую-либо доменную группу, то проверяется соответствие роли, заданной для группы тем ролям, которые созданы на сервере СУБД. Если на сервере имеется указанная роль, то осуществляется подключение пользователя в соответствии с заданным для группы уровнем безопасности. Иначе выдается соответствующее сообщение об ошибке.
Для выполнения примера добавьте ссылку на системную сборку 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.
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;
См. также: