Linux および macOS でのデータ アクセスのトレース
macOS と Linux の unixODBC Driver Manager では、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 Driver Manager が読み込まれるたびに、実行されたすべての ODBC API 呼び出しが出力ファイルに記録されます。
アプリケーションのトレースが終了したら、odbcinst.ini
ファイルから Trace=Yes
を削除してトレースによるパフォーマンス低下を回避し、不要なトレース ファイルが削除されるようにします。
トレースは、odbcinst.ini
内のドライバーを使用するすべてのアプリケーションに適用されます。 すべてのアプリケーションをトレースしない (ユーザーごとの機密情報の公開を避けるためなど) 場合は、個々のアプリケーション インスタンスをトレースできます。 インスタンスに、ODBCSYSINI
環境変数を使用して、プライベートな odbcinst.ini
の場所を指定します。 たとえば、次のように入力します。
$ ODBCSYSINI=/home/myappuser myapp
この場合、/home/myappuser/odbcinst.ini
の [ODBC Driver 17 for SQL Server]
セクションに Trace=Yes
を追加できます。
ドライバーによって使用されているファイルを特定する
Linux および macOS の ODBC ドライバーでは、使用されている odbc.ini
ファイルや、odbc.ini
ファイルへのパスが認識されません。 どの odbc.ini
ファイルが使用中であるかに関する情報は、unixODBC ツール odbc_config
および odbcinst
から入手できます。 この情報は、unixODBC Driver Manager のドキュメントから入手することもできます。
たとえば、次のコマンドを実行すると、システムとユーザーそれぞれのデータ ソース名 (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 のドキュメントを参照してください。