Role: IApplicationRole;
Свойство Role определяет параметры роли приложения.
Под ролью приложения понимается роль на уровне СУБД MS SQL, у которой есть права на определенные действия. Использование роли приложения позволяет осуществить подключение к БД под учетными данными роли, далее под установленным соединением происходит выполнение действий. Использование роли доступно только для СУБД типа Microsoft SQL Server. Указанные при подключении учетные данные пользователя (имя, пароль) на использование роли приложения не влияют.
По умолчанию роль приложения не используется.
Для выполнения примера на сервере СУБД должна быть создана роль «MyRole», которая должна входить в роль базы данных 'db_owner'. Скрипт для включения роли «MyRole» в роль базы данных 'db_owner': execute sp_addrolemember @rolename = 'db_owner', @membername = 'MyRole'. На форме должны быть расположены EditBox1 и EditBox2 типа EditBox.
Sub UserProc;
Var
MbManager: IMetabaseManager;
Package: ISecurityPackage;
PC: IPasswordCredentials;
Role: IApplicationRole;
C : ISecurityConnection;
Command: IDalCommand;
sql: string;
Ld : ISecurityPackageLogonData;
Begin
MbManager := MetabaseManagerFactory.Active;
Package := MbManager.Packs.FindById("StandardSecurityPackage").Package;
PC := Package.CreateCredentials(AuthenticationMode.Password) As IPasswordCredentials;
PC.UserName := EditBox1.Text;
PC.Password := EditBox2.Text;
Role := PC.Role;
Role.Active := True;
Role.Name := "MyRole";
Role.Password := "MyRole";
Role.PasswordSalt := "";
Role.UseDerivedPassword := False;
Ld := Package.CreateLogonData("MSSQL2008");
Ld.ParamValue("SERVER") := "ms2008a";
Ld.ParamValue("DATABASE") := "P5bash";
C := Package.PerformLogonRoleO(0, Ld, PC, 0, 0);
sql := "create table NewTable(NAME varchar(127) Null, SIZE numeric(24,4) Null)";
Command := C.CreateCommand(sql);
Command.Execute;
End Sub Button2OnClick;
После выполнения примера будет создана таблица под учетными данными роли.
См. также: