Перейти к содержанию

Коннектор источника для Oracle

Это руководство описывает, как настроить digna для подключения к Oracle Database через ODBC со строкой подключения без DSN (DSN-less).

Сторона digna одинакова для всех технологий — где создаются подключения, как шифруются значения свойств, как проверяется подключение и что означают режимы профилирования. Она описана в разделе Обзор подключений к базам данных. Эта страница описывает то, что специфично для Oracle.


1. Установка драйвера ODBC

Драйвер Oracle ODBC входит в состав Oracle Client (достаточно пакета «ODBC» для Instant Client). Установите его на машину, где работает бэкенд digna, следуя официальному руководству по установке от производителя.

Драйвер регистрируется как Oracle in <OracleHomeName> — например, Oracle in OraDB21Home1 или Oracle in instantclient_21_13. Имя Oracle home различается от установки к установке, поэтому узнайте точное имя на вашем хосте, как описано в разделе Установка драйвера ODBC на хосте digna.


2. Свойства ODBC

Пример, а не спецификация

Набор ниже — одна комбинация, которая заведомо работает. Свойства принадлежат драйверу Oracle ODBC, поэтому их имена, значения по умолчанию и допустимые значения различаются между версиями клиента, а имя драйвера, в частности, зависит от Oracle home на вашем хосте. Используйте этот набор как отправную точку и сверяйтесь с документацией установленной версии клиента.

Добавьте следующие свойства на экране Add DB Connection:

Ключ Пример значения Примечания
Driver Oracle in OraDB21Home1 Должно совпадать с именем драйвера, зарегистрированным на хосте digna
DBQ (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=db.example.com)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=digna_source_db))) База данных для подключения — см. ниже
UID DIGNA_SOURCE_USER Пользователь базы данных
PWD <password> Отметьте Encrypted

Итоговая строка подключения выглядит так:

Driver=Oracle in OraDB21Home1;DBQ=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=db.example.com)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=digna_source_db)));UID=DIGNA_SOURCE_USER;PWD=<password>

Значение DBQ

DBQ принимает три формы. Для digna они равнозначны; различаются они тем, что нужно настроить на хосте digna:

Форма Пример Требуется
Полный дескриптор подключения (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=db.example.com)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=digna_source_db))) Ничего — всё содержится в свойстве. Рекомендуется
Псевдоним TNS DIGNA_SOURCE Псевдоним должен существовать в tnsnames.ora клиента Oracle на хосте digna
Easy Connect db.example.com:1521/digna_source_db Клиент Oracle с поддержкой Easy Connect (12c и новее)

Предпочитайте полный дескриптор

Псевдоним TNS переносит половину определения подключения в файл на хосте digna, о котором легко забыть при пересборке хоста или переносе digna. Полный дескриптор делает подключение самодостаточным — в этом и состоит смысл настройки без DSN.

Скобки в дескрипторе внутри строки подключения допустимы, но если ваш пароль содержит ;, заключите его в фигурные скобки: PWD={p@ss;word}.


3. Настройка digna

На экране Add DB Connection укажите следующее:

Name:               Name of the connection. This is used for referencing the connection in other screens.
Technology:         Oracle
Profiling Mode:     Standard, Permanent or Session
Work Schema:        Schema for the work tables of "Permanent" profiling, e.g. "DIGNA_WORK"

4. Особенности Oracle

  • Схемы — это пользователи. digna показывает пользователей Oracle как схемы, поэтому исходная схема — это владелец таблиц, в примере выше DIGNA_SOURCE_USER. Пользователю подключения нужно право SELECT на эти таблицы — напрямую или через роль.
  • Одно подключение видит одну базу данных. Каталог, который предлагает digna, — это база данных, к которой подключено подключение, поэтому DBQ определяет, какой сервис, а значит и какая база данных, профилируется.
  • Идентификаторы в кавычках чувствительны к регистру. digna заключает в кавычки имена, которые считывает из словаря данных, — в том виде, в каком их хранит Oracle: в верхнем регистре для объектов, созданных без кавычек.
  • Режимы профилирования. Permanent создаёт рабочие таблицы в Work Schema, поэтому пользователю нужно право CREATE TABLE в ней и квота на табличное пространство. Session использует приватную временную таблицу (ORA$PTT_…, Oracle 18c и новее) и не затрагивает Work Schema. Для Standard нужен только доступ на чтение.

5. Проверка драйвера (необязательно)

Для подключения без DSN настраивать источник данных ODBC не требуется, но собственный диалог драйвера — удобный способ убедиться, что клиент Oracle, имя сервиса и ваши учётные данные работают, прежде чем вводить их в digna.

Шаг 1

Шаг 1

Значения TNS Service Name, предлагаемые здесь, берутся из tnsnames.ora вашей установки Oracle Client — именно там определён псевдоним, а вместе с ним хост, порт и имя сервиса. В digna можно использовать этот псевдоним как DBQ или вместо него полный дескриптор.

Шаг 2 – проверка подключения

Нажмите кнопку Test Connection.

Шаг 2

Введите пароль и нажмите кнопку OK.

Шаг 3

Сообщение об успешном подключении подтверждает, что драйвер и учётные данные работают.