--In the master database create a server audit
USE master
GO
CREATE SERVER AUDIT [Audit_Select_HumanResources_Employee]
TO FILE
( FILEPATH = N'C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\Backup'
,MAXSIZE = 0 MB
,MAX_ROLLOVER_FILES = 2147483647
,RESERVE_DISK_SPACE = OFF)
WITH
(QUEUE_DELAY = 1000, state= on)
ALTER SERVER AUDIT Audit_Select_HumanResources_Employee
WITH (STATE = ON) ;
GO
--In the database to monitor create a database audit
USE [AdventureWorks2012]
go
CREATE DATABASE AUDIT SPECIFICATION [Database-Audit]
FOR SERVER AUDIT [Audit_Select_HumanResources_Employee]
--In this example, we are monitoring the humanResources.employee
ADD (SELECT ON OBJECT::[HumanResources].[Employee] BY [dbo])
with (state=on)
--Now you can see the activity in the audit file created
SELECT * FROM sys.fn_get_audit_file ('c:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\Backup\Audit_Select_HumanResources_Employee.sqlaudit',default,default);
GO
Ho appena aggiunto un codice per voi. Il codice crea un controllo del server, un controllo del database per attività selezionate e infine il file sys.fn_get_audit_file viene utilizzato per recuperare le informazioni dal file. Devi farlo individualmente per ogni tavolo. Se si desidera una query più automatica, è possibile utilizzare altri strumenti come Apex SQL Audit o altri strumenti di terze parti di propria preferenza.
fonte
2015-01-29 22:51:52
Stavo anche esaminando il controllo di SQL Server 2008 ma sfortunatamente, mi sto occupando di SQL Server 2005 in questo momento. Mi chiedo se posso creare un collegamento al server di produzione (2005) da un server di sviluppo (2008) e quindi utilizzare il controllo. – Sung
Inoltre, è solo Enterprise. – Oliver