Linux 和 macOS 上的数据访问跟踪
macOS 和 Linux 上的 unixODBC 驱动程序管理器支持跟踪 ODBC Driver for SQL Server 的 ODBC API 调用入口和出口。
若要跟踪应用程序的 ODBC 行为,请编辑 odbcinst.ini
文件的 [ODBC]
部分。 将值 Trace=Yes
和 TraceFile
设置为将包含跟踪输出的文件的路径。 例如:
[ODBC]
Trace=Yes
TraceFile=/home/myappuser/odbctrace.log
还可以使用 /dev/stdout
或任何其他设备名称将跟踪输出发送到其中,而不是发送到永久性文件中。 使用上述设置后,每当应用程序加载 unixODBC 驱动程序管理器时,它都会将其执行的所有 ODBC API 调用记录到输出文件中。
当你完成应用程序跟踪后,从 odbcinst.ini
文件中删除 Trace=Yes
,这样可以避免跟踪性能下降,同时确保删除了所有不必要的跟踪文件。
跟踪适用于使用 odbcinst.ini
中的驱动程序的所有应用程序。 如果不跟踪所有应用程序(例如,为避免公开每位用户的敏感信息),可以跟踪单个应用程序实例。 使用 ODBCSYSINI
环境变量为实例提供专用 odbcinst.ini
的位置。 例如:
$ ODBCSYSINI=/home/myappuser myapp
在这种情况下,可以将 Trace=Yes
添加到 /home/myappuser/odbcinst.ini
的 [ODBC Driver 17 for SQL Server]
部分。
确定驱动程序使用的文件
Linux 和 macOS ODBC 驱动程序不知道正在使用哪个 odbc.ini
文件,也不知道 odbc.ini
文件的路径。 有关正在使用的 odbc.ini
文件的信息,请查看 unixODBC 工具 odbc_config
和 odbcinst
。 另外,也可以从 unixODBC 驱动程序管理器文档获取此信息。
例如,下面的命令打印系统和分别包含系统和用户数据源名称 (DSN) 的用户 odbc.ini
文件的位置:
$ 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 文档。