CurrentDomainSubjectAddState(Type: SecuritySubjectType): DomainSubjectAddState;
CurrentDomainSubjectAddState[Type: SecuritySubjectType]: Prognoz.Platform.Interop.Metabase.DomainSubjectAddState;
Type. Тип субъектов безопасности, для которых необходимо определить параметры добавления.
Свойство CurrentDomainSubjectAddState определяет настройки добавления доменных субъектов безопасности.
Настройки, установленные в данном свойстве, будут применяться для всех добавляемых пользователей. Данное свойство является аналогом свойства IMetabase.CurrentDomainSubjectAddState.
Для выполнения примера предполагается наличие домена «GROUP1». В данном домене созданы пользователи, имеющие в своем наименовании сочетание «TEST*». Соответствующие пользователи также созданы на сервере БД и имеют определенные гранты на объекты текущего репозитория.
Sub UserProc;
Var
MB: IMetabase;
MBSec: IMetabaseSecurity;
SubSearch: ISecuritySubjectsSearch;
Subjects: ISecuritySubjects;
Subject: ISecuritySubject;
Begin
MB := MetabaseClass.Active;
MBSec := MB.Security;
//Объект для поиска пользователей
SubSearch := MBSec.NewSubjectsSearch;
SubSearch.NameCriteria := "GROUP1\TEST*";
//Поиск только доменных пользователей
SubSearch.AreaIncludeDB := False;
SubSearch.AreaIncludeNT := True;
SubSearch.SubjectCriteria(SecuritySubjectType.User) := True;
SubSearch.ExecuteSearch;
//Найденные пользователи
Subjects := SubSearch.Subjects;
If Subjects.Count > 0 Then
//Установка параметров добавления доменных пользователей
MBSec.CurrentDomainSubjectAddState(SecuritySubjectType.User) :=
DomainSubjectAddState.MakeExternalOn
Or DomainSubjectAddState.ManageDBGrantsOff
Or DomainSubjectAddState.Keep;
//Добавление всех найденных пользователей
For Each Subject In Subjects Do
MBSec.AddNTSubject(Subject);
End For;
//Применение политики безопасности
MBSec.Apply;
End If;
End Sub UserProc;
При выполнении примера будет осуществлен поиск всех доменных пользователей, наименование которых удовлетворяет маске «GROUP1\TEST*». Найденные пользователи будут добавлены в список пользователей репозитория. Для пользователей будет установлен признак подключаемых с сервера. При раздаче привилегий и прав на объекты репозитория соответствующие гранты в базе репозитория раздаваться не будут.
Для выполнения примера предполагается наличие домена «GROUP1». В данном домене созданы пользователи, имеющие в своем наименовании сочетание «TEST*». Соответствующие пользователи также созданы на сервере БД и имеют определенные гранты на объекты текущего репозитория. Указанная процедура является точкой входа для .NET-сборки.
Imports Prognoz.Platform.Interop.Metabase;
Public Shared Sub Main(Params: StartParams);
Var
MB: IMetabase;
MBSec: IMetabaseSecurity;
SubSearch: ISecuritySubjectsSearch;
Subjects: ISecuritySubjects;
Subject: ISecuritySubject;
Begin
MB := Params.Metabase;
MBSec := MB.Security;
//Объект для поиска пользователей
SubSearch := MBSec.NewSubjectsSearch();
SubSearch.NameCriteria := "GROUP1\TEST*";
//Поиск только доменных пользователей
SubSearch.AreaIncludeDB := False;
SubSearch.AreaIncludeNT := True;
SubSearch.SubjectCriteria[SecuritySubjectType.sstUser] := True;
SubSearch.ExecuteSearch();
//Найденные пользователи
Subjects := SubSearch.Subjects;
If Subjects.Count > 0 Then
//Установка параметров добавления пользователей
MBSec.CurrentDomainSubjectAddState[SecuritySubjectType.sstUser] :=
DomainSubjectAddState.dsasMakeExternalOn
Or DomainSubjectAddState.dsasManageDBGrantsOff
Or DomainSubjectAddState.dsasKeep;
//Добавление всех найденных пользователей
For Each Subject In Subjects Do
MBSec.AddNTSubject(Subject);
End For;
//Применение политики безопасности
MBSec.Apply();
End If;
End Sub;
При выполнении примера будет осуществлен поиск всех доменных пользователей, наименование которых удовлетворяет маске «GROUP1\TEST*». Найденные пользователи будут добавлены в список пользователей репозитория. Для пользователей будет установлен признак подключаемых с сервера. При раздаче привилегий и прав на объекты репозитория соответствующие гранты в базе репозитория раздаваться не будут.
См. также: