AllowCreateUserGrant: Boolean;
AllowCreateUserGrant: System.Boolean;
Свойство AllowCreateUserGrant позволяет при сохранении политики безопасности создавать две роли:
первая роль включает в себя системные привилегии «Create user» и «Drop user»;
вторая роль включает в себя системную привилегию «Alter user».
Свойство по умолчанию не установлено и становится доступным, когда активирован режим разделения ролей между прикладным администратором и АИБ’ом.
В создаваемые роли будет включен администратор информационной безопасности. На присвоение свойство будет доступно только для него. При установке AllowCreateUserGrant значения False роли будут удаляться.
При обновлении пользователя в зависимости от привилегий, пользователь будет либо добавляться в роль, либо исключаться из роли.
Свойство доступно только для репозиториев, созданных на базе СУБД Oracle.
Для выполнения примера убедитесь, что репозиторий создан на базе СУБД Oracle.
Добавьте ссылки на системные сборки: Metabase, ForeSystem (для примера на Fore.NET).
Sub UserProc;
Var
MB: IMetabase;
MS: IMetabaseSecurity;
Isa: IMetabaseUser;
Policy: IMetabasePolicy;
Lic: Object;
Begin
MB := MetabaseClass.Active;
// Получим лицензию для возможности работы с менеджером безопасности
Lic := MB.RequestLicense(UiLicenseFeatureType.Adm);
MS := MB.Security;
Isa := MS.ResolveName(MB.Id + "_ISA") As IMetabaseUser;
Policy := MS.Policy;
// Включим распределение ролей между АИБ'ом и прикладным администратором
Policy.PromoteToIsaMode(Isa, IsaModePromoteOptions.RestrictAdminAccess Or IsaModePromoteOptions.RestrictIsaAccess);
// Создадим две роли
Policy.AllowCreateUserGrant := True;
// Сохраним изменения
MS.Apply;
// Освободим лицензию
Lic := Null;
End Sub UserProc;
Imports Prognoz.Platform.Interop.Metabase;
Imports Prognoz.Platform.Interop.ForeSystem;
…
Public Shared Sub Main(Params : StartParams);
Var
MB: IMetabase;
MS: IMetabaseSecurity;
Isa: IMetabaseUser;
Policy: IMetabasePolicy;
Lic: Object;
Begin
MB := Params.Metabase;
// Получим лицензию для возможности работы с менеджером безопасности
Lic := MB.RequestLicense(UiLicenseFeatureType.lftAdm);
MS := MB.Security;
Isa := MS.ResolveName(MB.Id + "_ISA") As IMetabaseUser;
Policy := MS.Policy;
// Включим распределение ролей между АИБ'ом и прикладным администратором
Policy.PromoteToIsaMode(Isa, IsaModePromoteOptions.ismopropRestrictAdminAccess Or IsaModePromoteOptions.ismopropRestrictIsaAccess);
// Создадим две роли
Policy.AllowCreateUserGrant := True;
// Сохраним изменения
MS.Apply();
// Освободим лицензию
Lic := Null;
End Sub;
После выполнения примера будет активирован режим разделения ролей между АИБ'ом и прикладным администратором. Для АИБ'а будут созданы две роли, которые будут использоваться при администрировании пользователей.
См. также: