Labels

admin (1) aix (1) alert (1) always-on (2) Architecture (1) aws (3) Azure (1) backup (3) BI-DWH (10) Binary (3) Boolean (1) C# (1) cache (1) casting (3) cdc (1) certificate (1) checks (1) cloud (3) cluster (1) cmd (7) collation (1) columns (1) compilation (1) configurations (7) Connection-String (2) connections (6) constraint (6) copypaste (2) cpu (2) csv (3) CTE (1) data-types (1) datetime (23) db (547) DB2 (1) deadlock (2) Denali (7) device (6) dotNet (5) dynamicSQL (11) email (5) encoding (1) encryption (4) errors (124) excel (1) ExecutionPlan (10) extended events (1) files (7) FIPS (1) foreign key (1) fragmentation (1) functions (1) GCP (2) gMSA (2) google (2) HADR (1) hashing (3) in-memory (1) index (3) indexedViews (2) insert (3) install (10) IO (1) isql (6) javascript (1) jobs (11) join (2) LDAP (2) LinkedServers (8) Linux (15) log (6) login (1) maintenance (3) mariadb (1) memory (4) merge (3) monitoring (4) MSA (2) mssql (444) mssql2005 (5) mssql2008R2 (20) mssql2012 (2) mysql (36) MySQL Shell (5) network (1) NoSQL (1) null (2) numeric (9) object-oriented (1) offline (1) openssl (1) Operating System (4) oracle (7) ORDBMS (1) ordering (2) Outer Apply (1) Outlook (1) page (1) parameters (2) partition (1) password (1) Performance (103) permissions (10) pivot (3) PLE (1) port (4) PostgreSQL (14) profiler (1) RDS (3) read (1) Replication (12) restore (4) root (1) RPO (1) RTO (1) SAP ASE (48) SAP RS (20) SCC (4) scema (1) script (8) security (10) segment (1) server (1) service broker (2) services (4) settings (75) SQL (74) SSAS (1) SSIS (19) SSL (8) SSMS (4) SSRS (6) storage (1) String (35) sybase (57) telnet (2) tempdb (1) Theory (2) tips (120) tools (3) training (1) transaction (6) trigger (2) Tuple (2) TVP (1) unix (8) users (3) vb.net (4) versioning (1) windows (14) xml (10) XSD (1) zip (1)

Auditing in SQL Server 2008

Auditing an instance of SQL Server or a SQL Server database involves tracking and logging events that occur on the system.

Auditing declaration and executions steps:
  1. Create a SQL Server Audit object.
  2. Create an Audit Specification (can be at the server or database level).
  3. Turn it on.

-- Create a SQL Server Audit object
CREATE SERVER AUDIT [ItaiAudit]
TO FILE 
( FILEPATH = N'D:\FolderA\'
,MAXSIZE = 100 MB
,MAX_ROLLOVER_FILES = 2147483647
,RESERVE_DISK_SPACE = OFF
)
WITH
( QUEUE_DELAY = 1000
,ON_FAILURE = CONTINUE
)
GO

-- Create an Audit Specification (database level)
CREATE DATABASE AUDIT SPECIFICATION [ItaiAuditSpecification]
FOR SERVER AUDIT [ItaiAudit]
ADD (UPDATE ON OBJECT::[dbo].[StamTable] BY [dbo]),
ADD (SELECT ON OBJECT::[dbo].[StamTable2] BY [dbo])
WITH (STATE = OFF)
GO


-- Another example: Create an Audit Specification to get logins (server level)
CREATE SERVER AUDIT SPECIFICATION [AuditSpec_itai_RG]
FOR SERVER AUDIT [Audit_itai_RG]
ADD (FAILED_LOGIN_GROUP),
ADD (SUCCESSFUL_LOGIN_GROUP)
WITH (STATE = ON)
GO



-- Turn it on
ALTER SERVER AUDIT ItaiAudit WITH (STATE = ON)
GO

-- Get auditing data from the file:
SELECT * 
FROM fn_get_audit_file('D:\FolderA\Audit*.sqlaudit',default, default) a

Note: Auditing is a SQL 2008 Enterprise version only feature.

msdn: Auditing in SQL Server 2008
msdn: Understanding SQL Server Audit

2 comments:

  1. This is really nice information about how to auditing sql server 2008 but I tried automate sql server auditing tool from http://www.lepide.com/sql-server-audit/ which allows to audit a specific user activities and operations as per requirement. It provides to facilitates to monitor the SQL server changes as who, what , when made and where. This tool helps to filter reports which are based on objects, databases, owner name, application name etc.

    ReplyDelete