RolesRevoke: IBitArray;
Свойство RolesRevoke возвращает массив, содержащий признаки присутствующих ролей у пользователя.
Каждый элемент массива содержит признак наличия соответствующей роли у пользователя. Список наименований ролей доступен в свойстве UserRoles. Актуально, если используется ролевой тип аутентификации пользователя.
Sub Main;
Var
Man: IMetabaseManager;
Package: ISecurityPackage;
MSSQLSPLD: IPrimaryMsSqlSPLD;
Cred: IPasswordCredentials;
Connection: ISecurityConnection;
RoleName: IStringList;
RoleRevoke: IBitArray;
i: Integer;
Begin
Man := MetabaseManagerFactory.Active;
Package := Man.Packs.Item(0).Package;
MSSQLSPLD := Package.CreateLogonData("MSSQL2008") As IPrimaryMsSqlSPLD;
MSSQLSPLD.Database := "Test_Schema_MSSQL";
MSSQLSPLD.Server := "Test_MSSQL";
Cred := Package.CreateCredentials(AuthenticationMode.Role) As IPasswordCredentials;
Cred.UserName := "TestUser";
Cred.Password := "TestUser";
Connection := Package.PerformLogonRoleO(1, MSSQLSPLD, Cred, 0, 0);
RoleName := Connection.UserRoles;
RoleRevoke := Connection.RolesRevoke;
For i := 0 To RoleName.Count - 1 Do
If RoleRevoke.Item(i) Then
Debug.WriteLine("Пользователю сопоставлена роль: " + RoleName.Item(i));
Else
Debug.WriteLine("Пользователю не имеет роль: " + RoleName.Item(i));
End If;
End For;
End Sub Main;
После выполнения примера будет осуществлено новое подключение к схеме "Test_Schema_MSSQL", расположенной на сервере "Test_MSSQL", с указанными учетными данными. Подключение осуществляется с проверкой роли указанного пользователя. Список ролей, которым сопоставлен пользователь, будет выведен в консоль среды разработки.
См. также: