CREATE DATABASE AUDIT SPECIFICATION(Transact-SQL)

적용 대상:SQL ServerAzure SQL Managed Instance

SQL Server Audit 기능을 사용하여 데이터베이스 감사 사양 개체를 만듭니다. 자세한 내용은 SQL Server Audit(데이터베이스 엔진)을 참조하세요.

Transact-SQL 구문 표기 규칙

Syntax

CREATE DATABASE AUDIT SPECIFICATION audit_specification_name  
{  
    FOR SERVER AUDIT audit_name   
        [ { ADD ( { <audit_action_specification> | audit_action_group_name } )   
      } [, ...n] ]  
    [ WITH ( STATE = { ON | OFF } ) ]  
}  
[ ; ]  
<audit_action_specification>::=  
{  
      action [ ,...n ]ON [ class :: ] securable BY principal [ ,...n ]  
}  

참고 항목

SQL Server 2014(12.x) 및 이전 버전에 대한 Transact-SQL 구문을 보려면 이전 버전 설명서를 참조 하세요.

인수

audit_specification_name
감사 사양의 이름입니다.

audit_name
이 사양이 적용되는 감사의 이름입니다.

audit_action_specification
감사에 기록되어야 하는 보안 개체에 대한 보안 주체의 동작 사양입니다.

action
하나 이상의 데이터베이스 수준 감사 가능 동작의 이름입니다. 감사 동작의 목록에 대해서는 SQL Server 감사 동작 그룹 및 동작을 참조합니다.

audit_action_group_name
하나 이상의 데이터베이스 수준 감사 가능 동작 그룹의 이름입니다. 감사 동작 그룹의 목록에 대해서는 SQL Server 감사 동작 그룹 및 동작을 참조합니다.

class
보안 개체의 클래스 이름(해당되는 경우)입니다.

securable
감사 동작 또는 감사 동작 그룹을 적용할 데이터베이스의 테이블, 뷰 또는 기타 보안 개체입니다. 자세한 내용은 Securables을 참조하세요.

principal
감사 동작 또는 감사 동작 그룹을 적용할 데이터베이스 보안 주체의 이름입니다. 모든 데이터베이스 보안 주체를 감사하려면 데이터베이스 보안 주체 public을 사용합니다. 자세한 내용은 보안 주체(데이터베이스 엔진)를 참조하세요.

WITH ( STATE = { ON | OFF } )
감사에서 이 감사 사양에 대한 레코드를 수집하거나 수집하지 못하도록 설정합니다.

설명

데이터베이스 감사 사양은 지정된 데이터베이스에 있는 비보안 개체입니다. 데이터베이스 감사 사양을 처음 만들 때는 사용할 수 없는 상태입니다.

사용 권한

ALTER ANY DATABASE AUDIT 권한이 있는 사용자는 데이터베이스 감사 사양을 만들어 모든 감사에 바인딩할 수 있습니다.

생성된 데이터베이스 감사 사양은 CONTROL SERVER 권한이 있는 사용자 또는 sysadmin 계정이 볼 수 있습니다.

A. 데이터베이스 감사 주체에 대해 테이블에서 SELECT 및 INSERT 감사

다음 예에서는 Payrole_Security_Audit이라는 서버 감사를 만들고 AdventureWorks2022 데이터베이스의 HumanResources.EmployeePayHistory 테이블에 대해 public 데이터베이스 역할 멤버의 SELECTINSERT 문을 감사하는 Payrole_Security_Audit이라는 데이터베이스 감사 사양을 만듭니다. 이는 모든 사용자가 항상 public 역할의 멤버이므로 모든 사용자를 감사하는 효과를 가집니다.

USE master ;  
GO  
-- Create the server audit.  
CREATE SERVER AUDIT Payrole_Security_Audit  
    TO FILE ( FILEPATH =   
'D:\SQLAudit\' ) ;  -- make sure this path exists
GO  
-- Enable the server audit.  
ALTER SERVER AUDIT Payrole_Security_Audit   
WITH (STATE = ON) ;  
GO  
-- Move to the target database.  
USE AdventureWorks2022;  
GO  
-- Create the database audit specification.  
CREATE DATABASE AUDIT SPECIFICATION Audit_Pay_Tables  
FOR SERVER AUDIT Payrole_Security_Audit  
ADD (SELECT , INSERT  
     ON HumanResources.EmployeePayHistory BY public )  
WITH (STATE = ON) ;  
GO  

B. 특정 데이터베이스 역할에 대해 sales 스키마에서 모든 개체에 대해 DML(INSERT, UPDATE 또는 DELETE) 감사

다음 예에서는 DataModification_Security_Audit라는 서버 감사를 만든 다음, Audit_Data_Modification_On_All_Sales_Tables 데이터베이스의 INSERT 스키마에 있는 모든 개체에 대해 새 데이터베이스 역할 UPDATE의 사용자에 의한 DELETE, SalesUKSales 문을 감사하는 AdventureWorks2022라는 데이터베이스 감사 사양을 만듭니다.

USE master ;  
GO  
-- Create the server audit.
-- Change the path to a path that the SQLServer Service has access to. 
CREATE SERVER AUDIT DataModification_Security_Audit  
    TO FILE ( FILEPATH = 
'D:\SQLAudit\' ) ;  -- make sure this path exists
GO  
-- Enable the server audit.  
ALTER SERVER AUDIT DataModification_Security_Audit   
WITH (STATE = ON) ;  
GO  
-- Move to the target database.  
USE AdventureWorks2022;  
GO  
CREATE ROLE SalesUK
GO
-- Create the database audit specification.  
CREATE DATABASE AUDIT SPECIFICATION Audit_Data_Modification_On_All_Sales_Tables  
FOR SERVER AUDIT DataModification_Security_Audit  
ADD ( INSERT, UPDATE, DELETE  
     ON Schema::Sales BY SalesUK )  
WITH (STATE = ON) ;    
GO  

참고 항목

CREATE SERVER AUDIT(Transact-SQL)
ALTER SERVER AUDIT(Transact-SQL)
DROP SERVER AUDIT(Transact-SQL)
CREATE SERVER AUDIT SPECIFICATION(Transact-SQL)
ALTER SERVER AUDIT SPECIFICATION(Transact-SQL)
DROP SERVER AUDIT SPECIFICATION(Transact-SQL)
CREATE DATABASE AUDIT SPECIFICATION(Transact-SQL)
ALTER DATABASE AUDIT SPECIFICATION(Transact-SQL)
DROP DATABASE AUDIT SPECIFICATION(Transact-SQL)
ALTER AUTHORIZATION(Transact-SQL)
sys.fn_get_audit_file(Transact-SQL)
sys.server_audits(Transact-SQL)
sys.server_file_audits(Transact-SQL)
sys.server_audit_specifications(Transact-SQL)
sys.server_audit_specification_details(Transact-SQL)
sys.database_audit_specifications(Transact-SQL)
sys.database_audit_specification_details(Transact-SQL)
sys.dm_server_audit_status(Transact-SQL)
sys.dm_audit_actions(Transact-SQL)
서버 감사 및 서버 감사 사양 만들기