Трассировка доступа к данным в Linux и macOS

Скачать драйвер ODBC

Диспетчер драйверов unixODBC в macOS и Linux поддерживает трассировку записи вызова API ODBC и выход из драйвера ODBC для SQL Server.

Чтобы отслеживать поведение ODBC приложения, измените раздел [ODBC] файла odbcinst.ini. Установите значения Trace=Yes и TraceFile для пути к файлу, который будет содержать выходные данные трассировки. Пример.

[ODBC]
Trace=Yes
TraceFile=/home/myappuser/odbctrace.log

Вы также можете использовать для отправки выходных данных трассировки не постоянный файл, а /dev/stdout или любое другое имя устройства. При использовании указанных ранее параметров каждый раз, когда приложение загружает диспетчер драйверов unixODBC, он записывает все выполненные вызовы API ODBC в выходной файл.

После завершения трассировки приложения удалите Trace=Yes из файла odbcinst.ini, чтобы избежать снижения производительности трассировки, и убедитесь, что все ненужные файлы трассировки удалены.

Трассировка применяется ко всем приложениям, использующим драйвер в odbcinst.ini. Чтобы не выполнять трассировку всех приложений (например, чтобы избежать раскрытия конфиденциальных данных конкретных пользователей), вы можете осуществлять трассировку отдельного экземпляра приложения. Укажите расположение частного экземпляра odbcinst.ini с помощью переменной среды ODBCSYSINI. Пример:

$ ODBCSYSINI=/home/myappuser myapp

В этом случае можно добавить Trace=Yes в раздел [ODBC Driver 17 for SQL Server]/home/myappuser/odbcinst.ini.

Определение файла, используемого драйвером

Драйверы ODBC для Linux и macOS не могут определить ни используемый файл odbc.ini, ни путь к файлу odbc.ini. Сведения о том, какой файл odbc.ini используется, доступны в средствах unixODBC odbc_config и odbcinst. Эти сведения также можно получить из документации по диспетчеру драйверов unixODBC.

Например, следующая команда отображает расположение системных и пользовательских файлов odbc.ini, которые содержат системные и пользовательские имена источников данных (DSN) соответственно:

$ odbcinst -j
unixODBC 2.3.1
DRIVERS............: /etc/odbcinst.ini
SYSTEM DATA SOURCES: /etc/odbc.ini
FILE DATA SOURCES..: /etc/ODBCDataSources
USER DATA SOURCES..: /home/odbcuser/.odbc.ini`
SQLULEN Size.......: 8
SQLLEN Size........: 8
SQLSETPOSIROW Size.: 8

Пользовательские имена DSN доступны только для конкретного пользователя. Пользовательские имена DSN хранятся в файле в домашнем каталоге или в подкаталоге пользователя. Системные имена DSN доступны для использования каждым пользователем в системе, но добавлять, изменять и удалять их могут только системные администраторы. Если у пользователя есть пользовательское имя DSN с тем же именем, что и у системного имени DSN, то при соединениях этого пользователя будет использоваться пользовательское имя DSN. Дополнительные сведения см. в документации unixODBC.

См. также