SlideShare a Scribd company logo
1 of 33
Download to read offline
David Dye
Introduction 
What is Auditing 
Overview of auditing options 
Introduction to SQL Audit 
SQL Audit Objects 
Implementing SQL Audit 
Audit
David Dye 
ddye@capecoral.net 
HTTP://WWW.SQLSAFETY.COM
Tracking and logging of events 
◦Security events 
◦DDL events 
◦DML events 
◦Data access events 
Often required by oversight or governance 
◦HIPPA 
◦SOX 
◦PCI
C2 Auditing 
Common Criteria Compliance 
SQL Trace 
DDL/DML Triggers 
SQL Audit
Introduced in SQL 2000 
Meets Department of Defense C2 security requirements 
Configured at the server level 
Audit logs are stored in the SQL folder structure 
Audit logs viewed through SQL Profiler or fn_trace_gettablefunction
ALL events are defined and non-configurable 
Instance wide auditing 
Logs can ONLY be stored in default instance data directory 
Rollover file size is non-configurable 
Inability to write to log file results in SQL shut down
Introduced in SQL 2005 
◦SQL 05 SP1 Evaluation Assurance Level 1 (EAL1) 
◦SQL 05 SP2/SQL 08 EAL4++ 
Does not include all C2 audit mode functionality 
Includes 
◦Residual Information Protection (RIP) 
◦The ability to view login statistics 
◦Column GRANT should not override table DENY
Requires Enterprise, Evaluation, or Developer edition 
Does not incorporate all C2 audit mode functionality 
Can degrade performance 
EAL4++ requires running additional scripts
Traces can be scripted or created through profiler 
Traces are highly configurable and can be selective 
Results saved to file or table 
Templates can be utilized
Can degrade performance 
Trace scope can not be efficiently limited to object (database) or action 
Programmatic limitations
Capture DDL and most DML events 
Cons 
◦Can be expensive! 
◦Trigger fails-Transaction FAILS 
◦Can’t capture all events
What is SQL Audit 
SQL Audit Background
Introduced in SQL 2008 
Provides the ability to audit server, database, and audit level events 
Internal to the SQL server 
Available in Enterprise, developer, and trial editions
Uses extended events 
Created through T-SQL, PowerShell or SSMS 
Audits can have the following scopes: 
◦Server level 
Include server operations, Logon, Logoff, etc. 
◦Database level 
Database action, DML, or DDL 
◦Audit level 
Alter, Create, Drop, etc. audits 
Audits can be synchronous or asynchronous and logged to 
◦File 
◦Windows application log 
◦Windows security log 
Full management, configuration, and administration available through .NET using SMO
Server Audit 
Server Level Audit Groups 
Database Level Audit Groups 
◦Database Level Audit Actions 
Audit Level Specification Groups
1.Created in the master database 
•First audit object to be created 
•Defines 
How the audit will be stored 
File 
Max file size (2mb is default and 2,147,483,647 TB is max) 
Max number of rollover files (unlimited is default) 
Reserved disk space (reserves the max. file space unless this is unlimited) 
Application log 
Security log 
Synchronous or asynchronous 
State of the SQL service on failure to maintain audit
1.References the server audit defining how audit data is stored 
•Created to record server level audit actions 
1.SUCCESSFUL_LOGIN_GROUP 
2.LOGOUT_GROUP 
3.FAILED_LOGIN_GROUP 
4.LOGIN_CHANGE_PASSWORD_GROUP 
5.APPLICATION_ROLE_CHANGE_PASSWORD_GROUP 
6.SERVER_ROLE_MEMBER_CHANGE_GROUP 
7.DATABASE_ROLE_MEMBER_CHANGE_GROUP 
8.BACKUP_RESTORE_GROUP 
9.DBCC_GROUP 
10.SERVER_OPERATION_GROUP 
11.DATABASE_OPERATION_GROUP 
12.AUDIT_ CHANGE_GROUP 
13.SERVER_STATE_CHANGE_GROUP 
14.SERVER_OBJECT_CHANGE_GROUP 
15.SERVER_PRINCIPAL_CHANGE_GROUP 
16.DATABASE_CHANGE_GROUP 
17.DATABASE_OBJECT_CHANGE_GROUP 
18.DATABASE_PRINCIPAL_CHANGE_GROUP 
19.SCHEMA_OBJECT_CHANGE_GROUP 
20.SERVER_PRINCIPAL_IMPERSONATION_GROUP 
21.DATABASE_PRINCIPAL_IMPERSONATION_GROUP 
22.SERVER_OBJECT_OWNERSHIP_CHANGE_GROUP 
23.DATABASE_OWNERSHIP_CHANGE_GROUP 
24.DATABASE_OBJECT_OWNERSHIP_CHANGE_GROUP 
25.SCHEMA_OBJECT_OWNERSHIP_CHANGE_GROUP 
26.SERVER_PERMISSION_CHANGE_GROUP 
27.SERVER_OBJECT_PERMISSION_CHANGE_GROUP 
28.DATABASE_PERMISSION_CHANGE_GROUP 
29.DATABASE_OBJECT_PERMISSION_CHANGE_GROUP 
30.SCHEMA_OBJECT_PERMISSION_CHANGE_GROUP 
31.DATABASE_OBJECT_ACCESS_GROUP 
32.SCHEMA_OBJECT_ACCESS_GROUP 
33.BROKER_LOGIN_GROUP 
34.DATABASE_MIRRORING_LOGIN_GROUP 
35.TRACE_CHANGE_GROUP
1.References the server audit defining how audit data is stored 
•Created to record database level audit actions 
1.DATABASE_ROLE_MEMBER_CHANGE_GROUP 
2.DATABASE_OPERATION_GROUP 
3.DATABASE_CHANGE_GROUP 
4.DATABASE_OBJECT_CHANGE_GROUP 
5.DATABASE_PRINCIPAL_CHANGE_GROUP 
6.SCHEMA_OBJECT_CHANGE_GROUP 
7.DATABASE_PRINCIPAL_IMPERSONATION_GROUP 
8.DATABASE_OWNERSHIP_CHANGE_GROUP 
9.DATABASE_OBJECT_OWNERSHIP_CHANGE_GROUP 
10.SCHEMA_OBJECT_OWNERSHIP_CHANGE_GROUP 
11.DATABASE_PERMISSION_CHANGE_GROUP 
12.DATABASE_OBJECT_PERMISSION_CHANGE_GROUP 
13.SCHEMA_OBJECT_PERMISSION_CHANGE_GROUP 
14.DATABASE_OBJECT_ACCESS_GROUP 
15.SCHEMA_OBJECT_ACCESS_GROUP
1.References the server audit defining how audit data is stored 
•Created to record database level actions 
1.SELECT 
2.UPDATE 
3.INSERT 
4.DELETE 
5.EXECUTE 
6.RECEIVE 
7.REFERENCES
1.References the server audit defining how audit data is stored 
•Created to record audit level action groups 
1.AUDIT_ CHANGE_GROUP 
•CREATE SERVER AUDIT 
•ALTER SERVER AUDIT 
•DROP SERVER AUDIT 
•CREATE SERVER AUDIT SPECIFICATION 
•ALTER SERVER AUDIT SPECIFICATION 
•DROP SERVER AUDIT SPECIFICATION 
•CREATE DATABASE AUDIT SPECIFICATION 
•ALTER DATABASE AUDIT SPECIFICATION 
•DROP DATABASE AUDIT SPECIFICATION
Creating Server Audit 
◦Demo Using SSMS 
Creating Audit Specification 
◦Demo Using SSMS 
Creating Server Specification 
◦Demo T-SQL 
Creating Database Specification 
◦Demo T-SQL 
Working with Audit Logs
1.Implementing a SQL audit begins with the server audit 
•Defines: 
•How audit is saved 
•Synchronous/Asynchronous 
•What happens on failure
1.Create server audit 
1.Using SSMS 
2.Write to application log 
3.Synchronous 
4.Stop sqlservice on failure
$dbServer= new-Object Microsoft.SqlServer.Management.Smo.Server("(local)") 
$dbAudit= New-Object Microsoft.SqlServer.Management.Smo.Audit($dbServer, "Test Audit") 
$dbAudit.DestinationType= [Microsoft.SqlServer.Management.Smo.AuditDestinationType]'File' 
$dbAudit.FilePath= "C:Audit" 
$dbAudit.Create() 
$dbAudit.Enable()
1.SQL audit specification is created at the server level 
•Audits all audit events 
•Utilizes a server audit
1.Create audit specification 
1.Using SSMS 
2.Using server audit 
3.All Audit_Changeevents
1.Implementing a SQL audit begins with the server audit 
•Defines: 
•What server audit will be used 
•The database level events to be audited
1.Create database audit specification 
1.Using T-SQL 
2.Using server audit 
3.SELECT and INSERT events on Person.Personby dbo 
4.SELECT events on HumanResources.Employeeby public

More Related Content

What's hot

Introduction to SQL Server Security
Introduction to SQL Server SecurityIntroduction to SQL Server Security
Introduction to SQL Server Security
Jason Strate
 
Exploring Oracle Database Performance Tuning Best Practices for DBAs and Deve...
Exploring Oracle Database Performance Tuning Best Practices for DBAs and Deve...Exploring Oracle Database Performance Tuning Best Practices for DBAs and Deve...
Exploring Oracle Database Performance Tuning Best Practices for DBAs and Deve...
Aaron Shilo
 
Introduction to NoSQL Databases
Introduction to NoSQL DatabasesIntroduction to NoSQL Databases
Introduction to NoSQL Databases
Derek Stainer
 

What's hot (20)

Achieving Lakehouse Models with Spark 3.0
Achieving Lakehouse Models with Spark 3.0Achieving Lakehouse Models with Spark 3.0
Achieving Lakehouse Models with Spark 3.0
 
Should I move my database to the cloud?
Should I move my database to the cloud?Should I move my database to the cloud?
Should I move my database to the cloud?
 
Azure Database Services for MySQL PostgreSQL and MariaDB
Azure Database Services for MySQL PostgreSQL and MariaDBAzure Database Services for MySQL PostgreSQL and MariaDB
Azure Database Services for MySQL PostgreSQL and MariaDB
 
Data Lakes - The Key to a Scalable Data Architecture
Data Lakes - The Key to a Scalable Data ArchitectureData Lakes - The Key to a Scalable Data Architecture
Data Lakes - The Key to a Scalable Data Architecture
 
Introducing Oracle Audit Vault and Database Firewall
Introducing Oracle Audit Vault and Database FirewallIntroducing Oracle Audit Vault and Database Firewall
Introducing Oracle Audit Vault and Database Firewall
 
Microsoft Windows Server 2012 R2 Hyper V server overview
Microsoft Windows Server 2012 R2 Hyper V server overviewMicrosoft Windows Server 2012 R2 Hyper V server overview
Microsoft Windows Server 2012 R2 Hyper V server overview
 
Introduction to SQL Server Security
Introduction to SQL Server SecurityIntroduction to SQL Server Security
Introduction to SQL Server Security
 
Azure SQL Data Warehouse
Azure SQL Data Warehouse Azure SQL Data Warehouse
Azure SQL Data Warehouse
 
2019 - OOW - Database Migration Methods from On-Premise to Cloud
2019 - OOW - Database Migration Methods from On-Premise to Cloud2019 - OOW - Database Migration Methods from On-Premise to Cloud
2019 - OOW - Database Migration Methods from On-Premise to Cloud
 
Distributed Point-in-Time Recovery with Postgres | PGConf.Russia 2018 | Eren ...
Distributed Point-in-Time Recovery with Postgres | PGConf.Russia 2018 | Eren ...Distributed Point-in-Time Recovery with Postgres | PGConf.Russia 2018 | Eren ...
Distributed Point-in-Time Recovery with Postgres | PGConf.Russia 2018 | Eren ...
 
Exploring Oracle Database Performance Tuning Best Practices for DBAs and Deve...
Exploring Oracle Database Performance Tuning Best Practices for DBAs and Deve...Exploring Oracle Database Performance Tuning Best Practices for DBAs and Deve...
Exploring Oracle Database Performance Tuning Best Practices for DBAs and Deve...
 
Transparent Data Encryption
Transparent Data EncryptionTransparent Data Encryption
Transparent Data Encryption
 
Introduction to Redis
Introduction to RedisIntroduction to Redis
Introduction to Redis
 
Data Lakehouse, Data Mesh, and Data Fabric (r1)
Data Lakehouse, Data Mesh, and Data Fabric (r1)Data Lakehouse, Data Mesh, and Data Fabric (r1)
Data Lakehouse, Data Mesh, and Data Fabric (r1)
 
Oracle Database Security
Oracle Database SecurityOracle Database Security
Oracle Database Security
 
Oracle Transparent Data Encryption (TDE) 12c
Oracle Transparent Data Encryption (TDE) 12cOracle Transparent Data Encryption (TDE) 12c
Oracle Transparent Data Encryption (TDE) 12c
 
MySQL Atchitecture and Concepts
MySQL Atchitecture and ConceptsMySQL Atchitecture and Concepts
MySQL Atchitecture and Concepts
 
Introduction to NoSQL Databases
Introduction to NoSQL DatabasesIntroduction to NoSQL Databases
Introduction to NoSQL Databases
 
Query Optimization with MySQL 8.0 and MariaDB 10.3: The Basics
Query Optimization with MySQL 8.0 and MariaDB 10.3: The BasicsQuery Optimization with MySQL 8.0 and MariaDB 10.3: The Basics
Query Optimization with MySQL 8.0 and MariaDB 10.3: The Basics
 
Creating a Modern Data Architecture
Creating a Modern Data ArchitectureCreating a Modern Data Architecture
Creating a Modern Data Architecture
 

Similar to Implementing Auditing in SQL Server

SQL Server 2008 Security Overview
SQL Server 2008 Security OverviewSQL Server 2008 Security Overview
SQL Server 2008 Security Overview
ukdpe
 
Sql server-performance-hafi
Sql server-performance-hafiSql server-performance-hafi
Sql server-performance-hafi
zabi-babi
 
24 HOP edición Español -Diferentes técnicas de administración de logins y usu...
24 HOP edición Español -Diferentes técnicas de administración de logins y usu...24 HOP edición Español -Diferentes técnicas de administración de logins y usu...
24 HOP edición Español -Diferentes técnicas de administración de logins y usu...
SpanishPASSVC
 

Similar to Implementing Auditing in SQL Server (20)

Auditing Data Access in SQL Server
Auditing Data Access in SQL ServerAuditing Data Access in SQL Server
Auditing Data Access in SQL Server
 
Sql database audit
Sql database auditSql database audit
Sql database audit
 
Database Performance Tuning| Rahul Gulab Singh
Database Performance Tuning| Rahul Gulab SinghDatabase Performance Tuning| Rahul Gulab Singh
Database Performance Tuning| Rahul Gulab Singh
 
SQL Server 2016: Just a Few of Our DBA's Favorite Things
SQL Server 2016: Just a Few of Our DBA's Favorite ThingsSQL Server 2016: Just a Few of Our DBA's Favorite Things
SQL Server 2016: Just a Few of Our DBA's Favorite Things
 
DB2 LUW Auditing
DB2 LUW AuditingDB2 LUW Auditing
DB2 LUW Auditing
 
SQL Server 2008 Security Overview
SQL Server 2008 Security OverviewSQL Server 2008 Security Overview
SQL Server 2008 Security Overview
 
Under New Management
Under New ManagementUnder New Management
Under New Management
 
Sql server-performance-hafi
Sql server-performance-hafiSql server-performance-hafi
Sql server-performance-hafi
 
24 HOP edición Español -Diferentes técnicas de administración de logins y usu...
24 HOP edición Español -Diferentes técnicas de administración de logins y usu...24 HOP edición Español -Diferentes técnicas de administración de logins y usu...
24 HOP edición Español -Diferentes técnicas de administración de logins y usu...
 
OER UNIT 5 Audit
OER UNIT  5 AuditOER UNIT  5 Audit
OER UNIT 5 Audit
 
Rock Solid SQL Server Management
Rock Solid SQL Server ManagementRock Solid SQL Server Management
Rock Solid SQL Server Management
 
Chetan.Kumar-SQL_DBA 9115
Chetan.Kumar-SQL_DBA 9115Chetan.Kumar-SQL_DBA 9115
Chetan.Kumar-SQL_DBA 9115
 
SQL Server - High availability
SQL Server - High availabilitySQL Server - High availability
SQL Server - High availability
 
Presentation database security audit vault & database firewall
Presentation   database security audit vault & database firewallPresentation   database security audit vault & database firewall
Presentation database security audit vault & database firewall
 
Sql server basics
Sql server basicsSql server basics
Sql server basics
 
Auditing and Monitoring PostgreSQL/EPAS
Auditing and Monitoring PostgreSQL/EPASAuditing and Monitoring PostgreSQL/EPAS
Auditing and Monitoring PostgreSQL/EPAS
 
Oracle audit and reporting in one hour or less
Oracle audit and reporting in one hour or lessOracle audit and reporting in one hour or less
Oracle audit and reporting in one hour or less
 
Oracle Enterprise Manager 12c: updates and upgrades.
Oracle Enterprise Manager 12c: updates and upgrades.Oracle Enterprise Manager 12c: updates and upgrades.
Oracle Enterprise Manager 12c: updates and upgrades.
 
Обзор и практическое применение Dell Change Auditor
Обзор и практическое применение Dell Change AuditorОбзор и практическое применение Dell Change Auditor
Обзор и практическое применение Dell Change Auditor
 
Обзор и практическое применение Dell Change Auditor
Обзор и практическое применение Dell Change AuditorОбзор и практическое применение Dell Change Auditor
Обзор и практическое применение Dell Change Auditor
 

Recently uploaded

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Recently uploaded (20)

Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 

Implementing Auditing in SQL Server

  • 2. Introduction What is Auditing Overview of auditing options Introduction to SQL Audit SQL Audit Objects Implementing SQL Audit Audit
  • 3. David Dye ddye@capecoral.net HTTP://WWW.SQLSAFETY.COM
  • 4. Tracking and logging of events ◦Security events ◦DDL events ◦DML events ◦Data access events Often required by oversight or governance ◦HIPPA ◦SOX ◦PCI
  • 5. C2 Auditing Common Criteria Compliance SQL Trace DDL/DML Triggers SQL Audit
  • 6. Introduced in SQL 2000 Meets Department of Defense C2 security requirements Configured at the server level Audit logs are stored in the SQL folder structure Audit logs viewed through SQL Profiler or fn_trace_gettablefunction
  • 7. ALL events are defined and non-configurable Instance wide auditing Logs can ONLY be stored in default instance data directory Rollover file size is non-configurable Inability to write to log file results in SQL shut down
  • 8.
  • 9. Introduced in SQL 2005 ◦SQL 05 SP1 Evaluation Assurance Level 1 (EAL1) ◦SQL 05 SP2/SQL 08 EAL4++ Does not include all C2 audit mode functionality Includes ◦Residual Information Protection (RIP) ◦The ability to view login statistics ◦Column GRANT should not override table DENY
  • 10. Requires Enterprise, Evaluation, or Developer edition Does not incorporate all C2 audit mode functionality Can degrade performance EAL4++ requires running additional scripts
  • 11.
  • 12. Traces can be scripted or created through profiler Traces are highly configurable and can be selective Results saved to file or table Templates can be utilized
  • 13. Can degrade performance Trace scope can not be efficiently limited to object (database) or action Programmatic limitations
  • 14.
  • 15. Capture DDL and most DML events Cons ◦Can be expensive! ◦Trigger fails-Transaction FAILS ◦Can’t capture all events
  • 16.
  • 17. What is SQL Audit SQL Audit Background
  • 18. Introduced in SQL 2008 Provides the ability to audit server, database, and audit level events Internal to the SQL server Available in Enterprise, developer, and trial editions
  • 19. Uses extended events Created through T-SQL, PowerShell or SSMS Audits can have the following scopes: ◦Server level Include server operations, Logon, Logoff, etc. ◦Database level Database action, DML, or DDL ◦Audit level Alter, Create, Drop, etc. audits Audits can be synchronous or asynchronous and logged to ◦File ◦Windows application log ◦Windows security log Full management, configuration, and administration available through .NET using SMO
  • 20. Server Audit Server Level Audit Groups Database Level Audit Groups ◦Database Level Audit Actions Audit Level Specification Groups
  • 21. 1.Created in the master database •First audit object to be created •Defines How the audit will be stored File Max file size (2mb is default and 2,147,483,647 TB is max) Max number of rollover files (unlimited is default) Reserved disk space (reserves the max. file space unless this is unlimited) Application log Security log Synchronous or asynchronous State of the SQL service on failure to maintain audit
  • 22. 1.References the server audit defining how audit data is stored •Created to record server level audit actions 1.SUCCESSFUL_LOGIN_GROUP 2.LOGOUT_GROUP 3.FAILED_LOGIN_GROUP 4.LOGIN_CHANGE_PASSWORD_GROUP 5.APPLICATION_ROLE_CHANGE_PASSWORD_GROUP 6.SERVER_ROLE_MEMBER_CHANGE_GROUP 7.DATABASE_ROLE_MEMBER_CHANGE_GROUP 8.BACKUP_RESTORE_GROUP 9.DBCC_GROUP 10.SERVER_OPERATION_GROUP 11.DATABASE_OPERATION_GROUP 12.AUDIT_ CHANGE_GROUP 13.SERVER_STATE_CHANGE_GROUP 14.SERVER_OBJECT_CHANGE_GROUP 15.SERVER_PRINCIPAL_CHANGE_GROUP 16.DATABASE_CHANGE_GROUP 17.DATABASE_OBJECT_CHANGE_GROUP 18.DATABASE_PRINCIPAL_CHANGE_GROUP 19.SCHEMA_OBJECT_CHANGE_GROUP 20.SERVER_PRINCIPAL_IMPERSONATION_GROUP 21.DATABASE_PRINCIPAL_IMPERSONATION_GROUP 22.SERVER_OBJECT_OWNERSHIP_CHANGE_GROUP 23.DATABASE_OWNERSHIP_CHANGE_GROUP 24.DATABASE_OBJECT_OWNERSHIP_CHANGE_GROUP 25.SCHEMA_OBJECT_OWNERSHIP_CHANGE_GROUP 26.SERVER_PERMISSION_CHANGE_GROUP 27.SERVER_OBJECT_PERMISSION_CHANGE_GROUP 28.DATABASE_PERMISSION_CHANGE_GROUP 29.DATABASE_OBJECT_PERMISSION_CHANGE_GROUP 30.SCHEMA_OBJECT_PERMISSION_CHANGE_GROUP 31.DATABASE_OBJECT_ACCESS_GROUP 32.SCHEMA_OBJECT_ACCESS_GROUP 33.BROKER_LOGIN_GROUP 34.DATABASE_MIRRORING_LOGIN_GROUP 35.TRACE_CHANGE_GROUP
  • 23. 1.References the server audit defining how audit data is stored •Created to record database level audit actions 1.DATABASE_ROLE_MEMBER_CHANGE_GROUP 2.DATABASE_OPERATION_GROUP 3.DATABASE_CHANGE_GROUP 4.DATABASE_OBJECT_CHANGE_GROUP 5.DATABASE_PRINCIPAL_CHANGE_GROUP 6.SCHEMA_OBJECT_CHANGE_GROUP 7.DATABASE_PRINCIPAL_IMPERSONATION_GROUP 8.DATABASE_OWNERSHIP_CHANGE_GROUP 9.DATABASE_OBJECT_OWNERSHIP_CHANGE_GROUP 10.SCHEMA_OBJECT_OWNERSHIP_CHANGE_GROUP 11.DATABASE_PERMISSION_CHANGE_GROUP 12.DATABASE_OBJECT_PERMISSION_CHANGE_GROUP 13.SCHEMA_OBJECT_PERMISSION_CHANGE_GROUP 14.DATABASE_OBJECT_ACCESS_GROUP 15.SCHEMA_OBJECT_ACCESS_GROUP
  • 24. 1.References the server audit defining how audit data is stored •Created to record database level actions 1.SELECT 2.UPDATE 3.INSERT 4.DELETE 5.EXECUTE 6.RECEIVE 7.REFERENCES
  • 25. 1.References the server audit defining how audit data is stored •Created to record audit level action groups 1.AUDIT_ CHANGE_GROUP •CREATE SERVER AUDIT •ALTER SERVER AUDIT •DROP SERVER AUDIT •CREATE SERVER AUDIT SPECIFICATION •ALTER SERVER AUDIT SPECIFICATION •DROP SERVER AUDIT SPECIFICATION •CREATE DATABASE AUDIT SPECIFICATION •ALTER DATABASE AUDIT SPECIFICATION •DROP DATABASE AUDIT SPECIFICATION
  • 26. Creating Server Audit ◦Demo Using SSMS Creating Audit Specification ◦Demo Using SSMS Creating Server Specification ◦Demo T-SQL Creating Database Specification ◦Demo T-SQL Working with Audit Logs
  • 27. 1.Implementing a SQL audit begins with the server audit •Defines: •How audit is saved •Synchronous/Asynchronous •What happens on failure
  • 28. 1.Create server audit 1.Using SSMS 2.Write to application log 3.Synchronous 4.Stop sqlservice on failure
  • 29. $dbServer= new-Object Microsoft.SqlServer.Management.Smo.Server("(local)") $dbAudit= New-Object Microsoft.SqlServer.Management.Smo.Audit($dbServer, "Test Audit") $dbAudit.DestinationType= [Microsoft.SqlServer.Management.Smo.AuditDestinationType]'File' $dbAudit.FilePath= "C:Audit" $dbAudit.Create() $dbAudit.Enable()
  • 30. 1.SQL audit specification is created at the server level •Audits all audit events •Utilizes a server audit
  • 31. 1.Create audit specification 1.Using SSMS 2.Using server audit 3.All Audit_Changeevents
  • 32. 1.Implementing a SQL audit begins with the server audit •Defines: •What server audit will be used •The database level events to be audited
  • 33. 1.Create database audit specification 1.Using T-SQL 2.Using server audit 3.SELECT and INSERT events on Person.Personby dbo 4.SELECT events on HumanResources.Employeeby public