IDalConnectionDescriptor2.ConnectAsPrivilege

Синтаксис Fore

ConnectAsPrivilege: DalConnectAsPrivilegeType;

Синтаксис Fore.NET

ConnectAsPrivilege: Prognoz.Platform.Interop.Dal.DalConnectAsPrivilegeType;

Описание

Свойство ConnectAsPrivilege определяет подключение к серверу баз данных с заданной привилегией.

Комментарии

Задать подключение с привилегией можно только для серверов на базе СУБД Oracle 9.x\10.x\11.x.

Подключение с привилегиями может понадобиться при выполнении операций в «Форсайт. Аналитическая платформа», требующих указания параметров учетной записи, обладающей правами администрирования в Oracle, например, когда пользователь SYSTEM заблокирован по требованиям безопасности и имеется только пользователь SYS.

Пример Fore

Для выполнения примера подключите к модулю системные сборки «Metabase», «Dal». Предполагается, что репозиторий находится на сервере Oracle (тип СУБД Oracle 9.x\10.x\11.x), на сервере имеется пользователь SYS с паролем «Password», в репозитории есть таблица с идентификатором «Table».

Sub UserProc;
Var
    MB: IMetabase;
    Driv: IDalDriver;
    Connect: IDalConnection;
    Connect2: IDalConnectionDescriptor2;
    Command: IDalCommand;
    ConnectDesc: IDalConnectionDescriptor;
    ConnectDescParams: IDalConnectionDescriptorParams;
Begin
    MB := MetabaseClass.Active;
    Driv := New DalOrcl8Driver.Create;
    ConnectDesc := Driv.CreateDescriptor;
    ConnectDescParams := ConnectDesc.Params;
    ConnectDescParams.Find("User Name").Value := "SYS";
    ConnectDescParams.Find("Password").Value := "Password";
    ConnectDescParams.Find("Host BSTR").Value := "test";
    ConnectDescParams.Find("Schema").Value := "PPRepository";
    //Пользователь с привилегией SYS
    Connect2 := ConnectDesc As IDalConnectionDescriptor2;
    Connect2.ConnectAsPrivilege := DalConnectAsPrivilegeType.SYSOPER;
    Connect := ConnectDesc.CreateConnection;
    Command := Connect.CreateCommand;
    Command.SQL := "select * from Table";
    Connect.StartTransaction;
    Command.Execute;
    Connect.Commit;
    Command.Close;
    Connect.Close;
End Sub UserProc;

После выполнения примера будет выполнен SQl-запрос, для соединения были указаны учетные данные пользователя с привилегией SYSOPER.

Пример Fore.NET

Для выполнения примера добавьте ссылку на системную сборку «Dal». Предполагается, что репозиторий находится на сервере Oracle (тип СУБД Oracle 9.x\10.x\11.x), на сервере имеется пользователь SYS с паролем «Password», в репозитории есть таблица с идентификатором «Table».

Указанная процедура является точкой входа для .NET-сборки.

Imports Prognoz.Platform.Interop.Metabase;
Imports Prognoz.Platform.Interop.Dal;

Public Shared Sub Main(Params : StartParams);
Var
    MB: IMetabase;
    Driv: IDalDriver;
    Connect: IDalConnection;
    Connect2: IDalConnectionDescriptor2;
    Command: IDalCommand;
    ConnectDesc: IDalConnectionDescriptor;
    ConnectDescParams: IDalConnectionDescriptorParams;
Begin
    MB := Params.Metabase;
    Driv := New DalOrcl8Driver.Create();
    ConnectDesc := Driv.CreateDescriptor();
    ConnectDescParams := ConnectDesc.Params;
    ConnectDescParams.Find("User Name").Value := "SYS";
    ConnectDescParams.Find("Password").Value := "test";
    ConnectDescParams.Find("Host BSTR").Value := "test";
    ConnectDescParams.Find("Schema").Value := "PPRepository";
    //Пользователь с привилегией SYS
    Connect2 := ConnectDesc As IDalConnectionDescriptor2;
    Connect2.ConnectAsPrivilege := DalConnectAsPrivilegeType.dcaptSYSOPER;
    Connect := ConnectDesc.CreateConnection();
    Command := Connect.CreateCommand();
    Command.SQL := "select * from Table";
    Connect.StartTransaction();
    Command.Execute();
    Connect.Commit();
    Command.Close();
    Connect.Close();
End Sub;

После выполнения примера будет выполнен SQl-запрос, для соединения были указаны учетные данные пользователя с привилегией SYSOPER.

См. также:

IDalConnectionDescriptor2