Трассировка доступа к данным в Linux и macOS
Диспетчер драйверов 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.