Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier les répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer de répertoire.
S’applique à :SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Base de données SQL dans Microsoft Fabric
Retourne des informations à partir d’un fichier d’audit créé par un audit serveur dans SQL Server. Pour plus d’informations, consultez Audit SQL Server (moteur de base de données).
Conseil / Astuce
Envisagez d’utiliser sys.fn_get_audit_file_v2 à la place. La sys.fn_get_audit_file_v2 fonction introduit un filtrage temporel au niveau du fichier et de l’enregistrement, offrant des améliorations significatives de performance, notamment pour les requêtes ciblant des plages de temps spécifiques.
Conseil / Astuce
Pour Fabric Data Warehouse, sys.fn_get_audit_file il est pris en charge mais sys.fn_get_audit_file_v2 (Transact-SQL) est recommandé. La sys.fn_get_audit_file_v2 fonction introduit un filtrage temporel au niveau du fichier et de l’enregistrement, offrant des améliorations significatives de performance, notamment pour les requêtes ciblant des plages de temps spécifiques. Pour plus d’informations et d’exemples, voir Configurer l’audit dans Fabric Data Warehouse.
Conseil / Astuce
Pour la base de données SQL dans Fabric, sys.fn_get_audit_file c’est pris en charge mais sys.fn_get_audit_file_v2 (Transact-SQL) est recommandé. La sys.fn_get_audit_file_v2 fonction introduit un filtrage temporel au niveau du fichier et de l’enregistrement, offrant des améliorations significatives de performance, notamment pour les requêtes ciblant des plages de temps spécifiques. Pour plus d’informations et d’exemples, voir Configurer l’audit dans la base de données SQL Fabric.
Conventions de la syntaxe Transact-SQL
Syntaxe
fn_get_audit_file ( file_pattern ,
{ default | initial_file_name | NULL } ,
{ default | audit_record_offset | NULL } )
Les arguments
file_pattern
Spécifie le répertoire ou chemin d'accès et nom de fichier du jeu de fichiers d'audit à lire. Type nvarchar(260).
Le passage d’un chemin sans modèle de nom de fichier génère une erreur.
Cet argument doit inclure à la fois un chemin d'accès (lettre de lecteur ou partage réseau) et un nom de fichier qui peut inclure un caractère générique. Un astérisque unique (*) peut être utilisé pour collecter plusieurs fichiers à partir d’un jeu de fichiers d’audit. Par exemple :
\<path>\*- Collecter tous les fichiers d’audit à l’emplacement spécifié.<path>\LoginsAudit_{GUID}*- Collectez tous les fichiers d’audit qui ont le nom et la paire GUID spécifiés.<path>\LoginsAudit_{GUID}_00_29384.sqlaudit- Collecter un fichier d’audit spécifique.
initial_file_name
Spécifie le chemin d'accès et le nom d'un fichier spécifique dans le jeu de fichiers d'audit à partir duquel commencer à lire des enregistrements d'audit. Type nvarchar(260).
L’argument initial_file_name doit contenir des entrées valides ou contenir la ou default la NULL valeur.
audit_record_offset
Spécifie un emplacement connu avec le fichier spécifié pour la initial_file_name. Lorsque cet argument est utilisé, la fonction commence à lire au premier enregistrement de la mémoire tampon immédiatement après le décalage spécifié.
L’argument audit_record_offset doit contenir des entrées valides ou contenir la ou default la NULL valeur. Le type est bigint.
Tables retournées
Le tableau suivant décrit le contenu de fichier d'audit qui peut être retourné par cette fonction.
| Nom de la colonne | Catégorie | Descriptif |
|---|---|---|
event_time |
datetime2 | Date et heure UTC lorsque l’action auditable est déclenchée. N'accepte pas la valeur NULL. |
sequence_number |
Int | Assure le suivi de la séquence d'enregistrements dans un enregistrement d'audit unique qui était trop grand pour la mémoire tampon d'écriture pour audits. N'accepte pas la valeur NULL. |
action_id |
varchar(4) | ID de l'action. N'accepte pas la valeur NULL. |
succeeded |
mors | Indique si l’action qui a déclenché l’événement a réussi. N'accepte pas la valeur NULL. Pour tous les événements autres que les événements de connexion, cet argument signale uniquement le succès ou l'échec de la vérification des autorisations, mais n'indique rien sur l'opération.1 = réussite0 = échec |
permission_bitmask |
Varbinaire(16) | Dans certaines actions, ce masque de bits est les autorisations qui ont été accordées, refusées ou révoquées. |
is_column_permission |
mors | Indicateur précisant s’il s’agit d’une autorisation au niveau de la colonne. N'accepte pas la valeur NULL. Retourne 0 lorsque le permission_bitmask = 0.1 = vrai0 = faux |
session_id |
smallint | ID de la session au cours de laquelle l'événement s'est produit. N'accepte pas la valeur NULL. |
server_principal_id |
Int | ID du contexte de connexion dans lequel l'action est effectuée. N'accepte pas la valeur NULL. |
database_principal_id |
Int | ID du contexte de l'utilisateur de base de données dans lequel l'action est effectuée. N'accepte pas la valeur NULL. Retourne 0 si cela ne s’applique pas. Par exemple, une opération de serveur. |
target_server_principal_id |
Int | Principal du serveur sur lequel l’opération GRANT/DENY/REVOKE est effectuée. N'accepte pas la valeur NULL. Retourne 0 le cas échéant. |
target_database_principal_id |
Int | Le principal de base de données sur lequel l’opération GRANT/DENY/REVOKE est effectuée. N'accepte pas la valeur NULL. Retourne 0 le cas échéant. |
object_id |
Int | ID de l’entité sur laquelle l’audit s’est produit, qui inclut les objets suivants : - Objets serveur -Bases - Objets de base de données - Objets de schéma N'accepte pas la valeur NULL. Retourne 0 si l’entité est le serveur lui-même ou si l’audit n’est pas effectué au niveau d’un objet. Par exemple, Authentification. |
class_type |
varchar(2) | Type d'entité pouvant être auditée sur laquelle l'audit se produit. N'accepte pas la valeur NULL. |
session_server_principal_name |
sysname | Principal du serveur pour la session. Autorise la valeur Null. Retourne l’identité de la connexion d’origine connectée à l’instance du Moteur de base de données en cas de commutateurs de contexte explicites ou implicites. |
server_principal_name |
sysname | Connexion actuelle. Autorise la valeur Null. |
server_principal_sid |
varbinary | Identificateur de sécurité de connexion actuel (SID). Autorise la valeur Null. |
database_principal_name |
sysname | Utilisateur actuel. Autorise la valeur Null. Retourne NULL s’il n’est pas disponible. |
target_server_principal_name |
sysname | Connexion cible de l’action. Autorise la valeur Null. Retourne NULL le cas échéant. |
target_server_principal_sid |
varbinary | SID de la connexion cible. Autorise la valeur Null. Retourne NULL le cas échéant. |
target_database_principal_name |
sysname | Utilisateur cible de l’action. Autorise la valeur Null. Retourne NULL le cas échéant. |
server_instance_name |
sysname | Nom de l'instance de serveur où l'audit s'est produit. Le format standard server\instance est utilisé. |
database_name |
sysname | Contexte de base de données dans lequel l'action s'est produite. Autorise la valeur Null. Retourne NULL les audits qui se produisent au niveau du serveur. |
schema_name |
sysname | Contexte du schéma dans lequel l’action s’est produite. Autorise la valeur Null. Retourne NULL les audits qui se produisent en dehors d’un schéma. |
object_name |
sysname | Nom de l’entité sur laquelle l’audit s’est produit, qui inclut les objets suivants : - Objets serveur -Bases - Objets de base de données - Objets de schéma Autorise la valeur Null. Retourne NULL si l’entité est le serveur lui-même ou si l’audit n’est pas effectué au niveau d’un objet. Par exemple, Authentification. |
statement |
nvarchar(4000) | Instruction Transact-SQL s’il existe. Autorise la valeur Null. Retourne NULL le cas échéant. |
additional_information |
nvarchar(4000) | Les informations uniques qui s'appliquent seulement à un événement unique sont retournées au format XML. Quelques actions auditables contiennent ce type d’informations. Un niveau de pile T-SQL s’affiche au format XML pour les actions associées à la pile T-SQL. Le format XML est le suivant : <tsql_stack><frame nest_level = '%u' database_name = '%.*s' schema_name = '%.*s' object_name = '%.*s' /></tsql_stack>frame nest_level indique le niveau d’imbrication actuel du frame. Le nom du module est représenté au format trois parties (database_name, schema_nameet object_name). Le nom du module est analysé pour échapper des caractères XML non valides tels que <, >, /, _x. Ils sont échappés comme _xHHHH_. Il HHHH s’appelle le code UCS-2 hexadécimal à quatre chiffres pour le caractère. Autorise la valeur Null. Retourne NULL lorsqu’aucune information supplémentaire n’est signalée par l’événement. |
file_name |
varchar(260) | Chemin d'accès et nom du fichier journal d'audit d'où provenait l'enregistrement. N'accepte pas la valeur NULL. |
audit_file_offset |
bigint | Offset de la mémoire tampon dans le fichier qui contient l'enregistrement d'audit. N'accepte pas la valeur NULL. S’applique à : SQL Server uniquement |
user_defined_event_id |
smallint | ID d’événement défini par l’utilisateur passé en tant qu’argument à sp_audit_write.
NULL pour les événements système (par défaut) et non zéro pour l’événement défini par l’utilisateur. Pour plus d’informations, consultez sp_audit_write.S’applique à : SQL Server 2012 (11.x) et versions ultérieures, Azure SQL Database et SQL Managed Instance |
user_defined_information |
nvarchar(4000) | Utilisé pour enregistrer toutes les informations supplémentaires que l’utilisateur souhaite enregistrer dans le journal d’audit à l’aide de la sp_audit_write procédure stockée.S’applique à : SQL Server 2012 (11.x) et versions ultérieures, Azure SQL Database et SQL Managed Instance |
audit_schema_version |
Int | A toujours la valeur 1. |
sequence_group_id |
varbinary | Identificateur unique. S’applique à : SQL Server 2016 (13.x) et versions ultérieures |
transaction_id |
bigint | Identificateur unique pour identifier plusieurs événements d’audit dans une transaction. S’applique à : SQL Server 2016 (13.x) et versions ultérieures |
client_ip |
nvarchar(128) | Adresse IP source de l’application cliente. S’applique à : SQL Server 2017 (14.x) et versions ultérieures, et Azure SQL Database |
application_name |
nvarchar(128) | Nom de l’application cliente qui a exécuté l’instruction qui a provoqué l’événement d’audit. S’applique à : SQL Server 2017 (14.x) et versions ultérieures, et Azure SQL Database |
duration_milliseconds |
bigint | Durée d’exécution des requêtes en millisecondes. S’applique à : Azure SQL Database et SQL Managed Instance |
response_rows |
bigint | Nombre de lignes retournées dans le jeu de résultats. S’applique à : Azure SQL Database et SQL Managed Instance |
affected_rows |
bigint | Nombre de lignes affectées par l’instruction exécutée. S’applique uniquement à : Azure SQL Database |
connection_id |
uniqueidentifier | ID de la connexion dans le serveur. S’applique à : Azure SQL Database et SQL Managed Instance |
data_sensitivity_information |
nvarchar(4000) | Types des informations et étiquettes de sensibilité renvoyées par la requête auditée, en fonction des colonnes classifiées dans la base de données. En savoir plus sur la découverte et la classification des données Azure SQL Database. S’applique uniquement à : Azure SQL Database |
host_name |
nvarchar(128) | Nom d’hôte de l’ordinateur client. |
session_context |
nvarchar(4000) | Paires clé-valeur qui font partie du contexte de session actuel. |
client_tls_version |
bigint | Version TLS minimale prise en charge par le client. |
client_tls_version_name |
nvarchar(128) | Version TLS minimale prise en charge par le client. |
database_transaction_id |
bigint | ID de transaction de la transaction actuelle dans la session active. |
ledger_start_sequence_number |
bigint | Numéro de séquence d’une opération au sein d’une transaction qui a créé une version de ligne. S’applique uniquement à : Azure SQL Database |
external_policy_permissions_checked |
nvarchar(4000) | Informations relatives à la vérification des autorisations d’autorisation externes, lorsqu’un événement d’audit est généré et que les stratégies d’autorisation externe Purview sont évaluées. S’applique uniquement à : Azure SQL Database |
obo_middle_tier_app_id |
varchar(120) | ID d’application de l’application de niveau intermédiaire qui se connecte à Azure SQL Database à l’aide de l’accès OBO (on-behalf-of). Autorise la valeur Null. Retourne NULL si la requête n’est pas effectuée à l’aide de l’accès OBO.S’applique uniquement à : Azure SQL Database |
is_local_secondary_replica |
mors |
True si l’enregistrement d’audit provient d’un réplica secondaire local en lecture seule, False sinon.S’applique uniquement à : Azure SQL Database |
Notes
Si l’argument file_pattern passé à référencer
fn_get_audit_fileun chemin d’accès ou un fichier qui n’existe pas ou si le fichier n’est pas un fichier d’audit, leMSG_INVALID_AUDIT_FILEmessage d’erreur est retourné.fn_get_audit_filene peut pas être utilisé lorsque l’audit est créé avec les options ouAPPLICATION_LOGSECURITY_LOGlesEXTERNAL_MONITORoptions.
autorisations
SQL Server 2019 (15.x) et les versions antérieures nécessitent CONTROL SERVER une autorisation sur le serveur.
SQL Server 2022 (16.x) et versions ultérieures nécessitent VIEW SERVER SECURITY AUDIT une autorisation sur le serveur.
Exemples
Cet exemple lit à partir d'un fichier nommé \\serverName\Audit\HIPAA_AUDIT.sqlaudit.
SELECT *
FROM sys.fn_get_audit_file(
'\\serverName\Audit\HIPAA_AUDIT.sqlaudit',
DEFAULT,
DEFAULT
);
GO
Pour obtenir un exemple complet de création d’audit, consultez SQL Server Audit (moteur de base de données).
Limites
La sélection de lignes à partir d’une table Create Table As Select (CTAS) ou sys.fn_get_audit_file est une limitation lors de INSERT INTO l’exécution sur Azure Synapse Analytics. Bien que la requête se termine correctement et qu’aucun message d’erreur n’apparaît, aucune ligne n’est présente dans la table créée à l’aide de CTAS ou INSERT INTO.
Plus d’informations
Vues de catalogue système :
- sys.server_audit_specifications (Transact-SQL)
- sys.server_audit_specification_details (Transact-SQL)
- Spécifications d'audit de base de données (sys.database_audit_specifications) (Transact-SQL)
- sys.détails_de_spécification_d'audit_de_base_de_données (Transact-SQL)
Transact-SQL :
- CRÉER UN AUDIT DE SERVEUR (Transact-SQL)
- MODIFIER L’AUDIT DU SERVEUR (Transact-SQL)
- AUDIT DE SERVEUR DROP (Transact-SQL)
- CRÉER SPÉCIFICATION D'AUDIT DU SERVEUR (Transact-SQL)
- MODIFIER LA SPÉCIFICATION D’AUDIT DE SERVEUR (Transact-SQL)
- SUPPRIMER LA SPÉCIFICATION D'AUDIT DU SERVEUR (Transact-SQL)
- CRÉER UNE SPÉCIFICATION D'AUDIT DE BASE DE DONNÉES (Transact-SQL)
- MODIFIER LA SPÉCIFICATION D’AUDIT DE BASE DE DONNÉES (Transact-SQL)
- SUPPRIMER LA SPÉCIFICATION D'AUDIT DE LA BASE DE DONNÉES (Transact-SQL)
- MODIFIER L'AUTORISATION (Transact-SQL)