IMetabaseUsersUpdate.ItemSetup

Синтаксис

ItemSetup(Index: Integer): IMetabaseSecuritySubjectUpdateSetup;

Параметры

Index. Индекс пользователя в списке обновления.

Описание

Свойство ItemSetup возвращает настройки обновления субъекта безопасности.

Пример

Для выполнения примера в менеджере безопасности предполагается наличие доменного пользователя с наименованием «DOMAIN\USER».

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

Sub UserProc;
Var
    MB: IMetabase;
    MS: IMetabaseSecurity;
    Policy: IMetabasePolicy;
    Session: ILogonSession;
    User: IMetabaseUser;
    UsUpdate: IMetabaseUsersUpdate;
    UsUpdateSec: IMetabaseSecuritySubjectUpdateSetup;
    Lic: Object;
    UserName: String;
Begin
    MB := MetabaseClass.Active;
    // Получим информацию о текущей сессии с репозиторием
    Session := MB.LogonSession;
    // Укажем учётные данные текущего пользователя, если он обладает правами администратора на уровне СУБД
    Session.Credentials("$SYSTEM"True) := Session.LogonCredentials;
    // Получим лицензию для возможности работы с менеджером безопасности
    Lic := MB.RequestLicense(UiLicenseFeatureType.Adm);
    MS := MB.Security;
    // Создадим объект обновления пользователей
    UsUpdate := MS.CreateUsersUpdate;
    // Получим доменного пользователя, для которого необходимо выполнить синхронизацию с LDAP
    UserName := "DOMAIN\USER";
    User := MS.ResolveName(UserName) As IMetabaseUser;
    If User <> Null Then
        If User.IsNT And User.External = False Then
            // Выведем атрибуты доменного пользователя до синхронизации
            Debug.WriteLine("Атрибуты доменного пользователя до синхронизации с LDAP:");
            Debug.WriteLine("Name " + User.Name + ":");
            Debug.WriteLine("SID: " + User.Sid.AsString);
            Debug.WriteLine("UPN: " + User.UserPrincipalName);
            Debug.WriteLine("Description: " + User.Description);
            Debug.WriteLine("");
            // Добавим доменного пользователя в обновление
            UsUpdate.Add(User);
            // Установим способ обновления - синхронизация атрибутов с LDAP
            UsUpdateSec := UsUpdate.ItemSetup(0);
            UsUpdateSec.UpdateType := MetabaseSecuritySubjectUpdateType.LDAPSync;
            // Обновим информацию о доменном пользователе и выполним синхронизацию атрибутов
            MS.UpdateUsers(UsUpdate);
            // Выведем атрибуты доменного пользователя после синхронизации
            Debug.WriteLine("Атрибуты доменного пользователя после синхронизации с LDAP:");
            Debug.WriteLine("Name: " + User.Name);
            Debug.WriteLine("SID: " + User.Sid.AsString);
            Debug.WriteLine("UPN: " + User.UserPrincipalName);
            Debug.WriteLine("Description: " + User.Description);
            Debug.WriteLine("");
            // Сохраним изменения
            MS.Apply;
        End If;
    Else
        Debug.WriteLine("Пользователь " + UserName + " не найден в менеджере безопасности");
    End If;
    // Освободим лицензию
    Lic := Null;
End Sub UserProc;

В результате выполнения примера будет выполнена синхронизация атрибутов доменного пользователя с атрибутами LDAP-каталога и переименование пользователя на уровне СУБД. В консоль будет выведена информация о значениях атрибутов пользователя до синхронизации и после:

Атрибуты доменного пользователя до синхронизации с LDAP:

Name: DOMAIN\USER

SID: S-1-5-21-2798585636-1410933581-2846741107-2611

UPN: USER@DOMAIN.REALM

Description: Пользователь 1

Атрибуты доменного пользователя после синхронизации с LDAP:

Name: DOMAIN\CHANGED_USER_NAME

SID: S-1-5-21-2798585636-1410933581-2846741107-2611

UPN: CHANGED_USER_NAME@DOMAIN.REALM

Description: Пользователь 1

Если пользователь «DOMAIN\USER» не найден в менеджере безопасности, то в консоль будет выведено соответствующее сообщение.

См. также:

IMetabaseUsersUpdate