J'ai eu la même question. La réponse est en fait plus simple que prévu et n'a pas besoin d'une application C# personnalisée pour générer beaucoup de SQL pour couvrir toutes les tables. Exemple SQL ci-dessous. L'important était de spécifier database et public pour INSERT/UPDATE/DELETE.
USE [master]
GO
CREATE SERVER AUDIT [CancerStatsAudit]
TO FILE
( FILEPATH = N'I:\CancerStats\Audit\'
,MAXSIZE = 128 MB
,MAX_ROLLOVER_FILES = 64
,RESERVE_DISK_SPACE = OFF
)
WITH
( QUEUE_DELAY = 1000
,ON_FAILURE = CONTINUE
,AUDIT_GUID = '5a0a18cf-fe42-4171-ad01-5e19af9e27d1'
)
ALTER SERVER AUDIT [CancerStatsAudit] WITH (STATE = ON)
GO
USE [CancerStats]
GO
CREATE DATABASE AUDIT SPECIFICATION [CancerStatsDBAudit]
FOR SERVER AUDIT [CancerStatsAudit]
ADD (INSERT ON DATABASE::[CancerStats] BY [public]),
ADD (UPDATE ON DATABASE::[CancerStats] BY [public]),
ADD (DELETE ON DATABASE::[CancerStats] BY [public]),
ADD (EXECUTE ON DATABASE::[CancerStats] BY [public]),
ADD (DATABASE_OBJECT_CHANGE_GROUP),
ADD (SCHEMA_OBJECT_CHANGE_GROUP)
WITH (STATE = ON)
GO
NB: DATABASE_OBJECT_CHANGE_GROUP et SCHEMA_OBJECT_CHANGE_GROUP ne sont pas nécessaires pour la vérification INSERT, UPDATE et DELETE - voir les notes complémentaires ci-dessous.
Notes complémentaires:
L'exemple ci-dessus comprend également les DATABASE_OBJECT_CHANGE_GROUP et SCHEMA_OBJECT_CHANGE_GROUP. Celles-ci ont été incluses car mon exigence était également de suivre les actions CREATE/ALTER/DROP sur les objets de base de données. Il est à noter que la documentation est fausse pour ceux-ci. La page ci-dessus indique les pistes DATABASE_OBJECT_CHANGE_GROUP CREATE, UPDATE et DELETE. Ce n'est pas vrai (je l'ai testé dans SQL Server 2016), ne CREER est suivi, voir: https://connect.microsoft.com/SQLServer/feedback/details/370103/database-object-change-group-audit-group-does-not-audit-drop-proc
En fait, pour suivre CREATE, UPDATE, DELETE, utilisez SCHEMA_OBJECT_CHANGE_GROUP. Malgré la page de documentation docs.microsoft.com ci-dessus suggérant que cela ne fonctionne que pour les schémas, cela fonctionne aussi bien pour les objets dans le schéma.
Cette fonctionnalité nécessite Enterprise Edition. –