Traçage de l’accès aux données sur Linux et macOS

Télécharger le pilote ODBC

Le gestionnaire de pilotes unixODBC sur macOS et Linux prend en charge le traçage de l’entrée et de la sortie d’appel d’API ODBC pour SQL Server.

Pour tracer le comportement ODBC de votre application, modifiez la section [ODBC] du fichier odbcinst.ini. Définissez les valeurs Trace=Yes et TraceFile sur le chemin du fichier qui doit contenir la sortie de trace. Par exemple :

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

Vous pouvez également utiliser /dev/stdout ou un autre nom d’appareil pour envoyer une sortie de trace au lieu d’un fichier persistant. Avec les paramètres précédents, chaque fois qu’une application charge le gestionnaire de pilotes unixODBC, elle enregistre tous les appels d’API ODBC effectués dans le fichier de sortie.

Une fois que vous avez fini de tracer votre application, supprimez Trace=Yes du fichier odbcinst.ini pour éviter la perte de performances liée au traçage et pour que les fichiers de trace inutiles soient bien supprimés.

Le traçage s’applique à toutes les applications qui utilisent le pilote dans odbcinst.ini. Plutôt que toutes les applications, vous pouvez tracer une instance d’application individuelle (par exemple pour éviter la divulgation d’informations sensibles selon les utilisateurs). Indiquez à l’instance l’emplacement d’un fichier odbcinst.ini privé en utilisant la variable d’environnement ODBCSYSINI. Exemple :

$ ODBCSYSINI=/home/myappuser myapp

Dans ce cas, vous pouvez ajouter Trace=Yes à la section [ODBC Driver 17 for SQL Server] de /home/myappuser/odbcinst.ini.

Détermination du fichier utilisé par le pilote

Les pilotes ODBC Linux et macOS ne savent pas quel fichier odbc.ini est utilisé et ne connaissent pas son chemin. Les outils unixODBC odbc_config et odbcinst donnent des informations permettant d’identifier le fichier odbc.ini en cours d’utilisation. Vous pouvez également obtenir ce renseignement dans la documentation du gestionnaire de pilotes unixODBC.

Par exemple, la commande suivante imprime l’emplacement des fichiers odbc.ini système et utilisateur qui contiennent respectivement les noms de source de données (DSN, Data Source Name) système et utilisateur :

$ 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

Les DSN utilisateur ne sont accessibles qu’à un utilisateur spécifique. Les DSN utilisateur sont stockés dans un fichier situé dans le répertoire de base de l’utilisateur ou dans un sous-répertoire. Les DSN système sont disponibles pour tous les utilisateurs du système, mais ne peuvent être ajoutés, modifiés et supprimés que par un administrateur système. Si un utilisateur dispose d’un DSN utilisateur portant le même nom qu’un DSN système, le DSN utilisateur sera utilisé lors des connexions de cet utilisateur. Pour plus d’informations, consultez la documentation unixODBC.

Voir aussi