OpenMetabase

Синтаксис

OpenMetabaseResult OpenMetabase(MbDef tDef, UserCreds tCreds, [OpenMetabaseArg tArg])

Параметры

tDef. Описание репозитория, к которому осуществляется подключение.

tCreds. Учетные данные пользователя, под которым осуществляется подключение.

tArg. Параметры подключения.

Описание

Операция OpenMetabase осуществляет подключение к репозиторию и возвращает моникёр соединения с репозиторием.

Комментарии

Операция позволяет выполнить следующие действия:

Подключение к репозиторию может осуществляться различными способами. Для подключения необходимо указать информацию о репозитории и параметры аутентификации пользователя. Для указания репозитория, к которому осуществляется подключение, доступны следующие варианты:

Для аутентификации пользователей доступны следующие способы (более подробное описание представлено ниже):

Параметры аутентификации указываются в поле tCreds.

Результатом выполнения операции будут:

Примечание. Параметры сессии хранятся в памяти BI-сервера или на сервере состояний, если в конфигурации определена группа настроек StateServer. Если группа настроек StateServer определена, но сам сервер состояний отключен, то идентификатор сессии сгенерирован не будет.

Полученный моникёр в дальнейшем будет использоваться в следующих случаях:

Ключ сессии sessKey может использоваться, например, при работе с протоколом доступа для получения списка операций, выполненных в рамках сессии.

Идентификатор sessCookie, в отличие от моникёра, не используется для работы с репозиторием, а используется только для идентификации существующих сессий на сервере. Если полученный идентификатор сохранить и в дальнейшем, при новом подключении, указать в качестве значения поля tArg.sessCookie, то на BI-сервере будет осуществлена проверка на наличие сессии с таким же идентификатором. Если сессия существует, то будет осуществлена проверка на возможность её повторного использования. Необходимыми условиями для повторного использования сессии являются:

Способы аутентификации

Прямое указание учетных данных

Учетные данные задаются в полях tCreds.user и tCreds.pass.

Подключение с использованием цифровой подписи

Для подключения с использованием цифровой подписи необходимо предварительно подготовить репозиторий следующим образом:

Примечание. Если BI-сервер развернут на базе веб-сервера IIS, то пул BI-сервера должен быть запущен из-под того пользователя, под которым запускали утилиту PP.Util.

Перед подключением необходимо выполнить операцию GetVerifierCode для получения блока данных, которые клиент должен будет подписать цифровой подписью. Подписанные данные необходимо указать в поле tCreds.verifier.signature, в поле tCreds.verifier.cookie необходимо указать случайное число, которое также будет получено в результате выполнения операции GetVerifierCode. В поле tCreds.verifier.user указывается пользователь, под которым осуществляется подключение. Этот пользователь может отсутствовать в СУБД репозитория и менеджере безопасности.

Примечание. Если указан пользователь, который отсутствует везде, то он будет создан в менеджере безопасности репозитория. Если было задано поле tCreds.verifier.role, то пользователь будет включен в указанную группу и будет обладать соответствующими правами. Если поле не задано, то пользователь будет включен во Встроенную группу пользователей. При необходимости права созданного пользователя можно изменить с помощью операции SetMbSec.

В поле tCreds.verifier.mbUser необходимо указать пользователя, под которым будет осуществляться фактическое подключение к базе данных репозитория. Данный пользователь должен существовать в СУБД и обладать правами на вход в репозиторий. Также в поле tCreds.verifier.certificate необходимо указать идентификатор сертификата, который будет использоваться для проверки цифровой подписи. Данный сертификат должен быть сохранен в репозитории таким образом, как это было описано выше. В поле tCreds.pass задается пустая строка, данное поле не используется при подключении с использованием цифровой подписи.

Интегрированная доменная аутентификация

Для использования интегрированной доменной аутентификации пользователя поле tCreds.user не указывается, а в поле tCreds.pass необходимо указать пустое значение. При этом для подключения будут переданы учетные данные текущего пользователя операционной системы.

Отслеживание событий

В репозитории может быть установлен обработчик пользовательских событий, который будет обрабатывать действия, выполняемые из веб-сервиса. Для этого необходимо задать следующие настройки:

  1. Свойству IMetabaseDefinition.CheckCustomEvents установить значение True.

  2. Для репозитория установить специальный объект MetabaseSpecialObject.MetabaseCustomEvents, в качестве объекта указывается модуль, содержащий реализацию интерфейса IMetabaseCustomEvents.

При выполнении операции OpenMetabase будет выполнен следующий алгоритм:

  1. Если IMetabaseDefinition.CheckCustomEvents = False, то открывается соединение в соответствии с переданными учётными данными и возвращается моникёр соединения.

  2. Если IMetabaseDefinition.CheckCustomEvents = True, то открывается соединение с учётными данными, которые должны быть сохранены утилитой PP.Util. Если сохранённые учётные данные отсутствуют, то генерируется исключительная ситуация.

  3. Запускается на выполнение специальный объект, который должен быть задан в репозитории. Если он не задан или в нём отсутствует реализация интерфейса IMetabaseCustomEvents, то генерируется исключительная ситуация.

  4. В событие OnBeforeLogon передаются учётные данные, которые были переданы в операцию OpenMetabase. Далее, в соответствии с прикладной логикой, в обработчике события можно произвести какие-либо действия. Результирующее соединение должно быть задано в свойстве ResultMetabase аргумента события, моникёр этого соединения будет возвращён в результате операции. Если по каким-либо причинам в обработчике события свойству AllowLogon аргумента события было установлено значение False, то в результате операции будет сгенерирована исключительная ситуация.

Пример

Различные варианты использования операции приведены в следующих примерах:

Наименование примера
Подключение к репозиторию с прямой передачей учётных данных
Подключение к репозиторию с использованием цифровой подписи
Подключение к репозиторию с использованием интегрированной доменной аутентификации

См. также:

Общие операции