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» не найден в менеджере безопасности, то в консоль будет выведено соответствующее сообщение.
См. также: