CREATE DATABASE AUDIT SPECIFICATION(Transact-SQL)
SQL Server 감사 기능을 사용하여 데이터베이스 감사 사양 개체를 만듭니다. 자세한 내용은 SQL Server Audit 이해를 참조하십시오.
구문
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 ]
}
인수
audit_specification_name
감사 사양의 이름입니다.audit_name
이 사양이 적용되는 감사의 이름입니다.audit_action_specification
감사에 기록되어야 하는 보안 개체에 대한 보안 주체의 동작 사양입니다.action
하나 이상의 데이터베이스 수준 감사 가능 동작의 이름입니다. 감사 동작 목록을 보려면 SQL Server Audit 동작 그룹 및 동작을 참조하십시오.audit_action_group_name
하나 이상의 데이터베이스 수준 감사 가능 동작 그룹의 이름입니다. 감사 동작 그룹의 목록은 SQL Server Audit 동작 그룹 및 동작을 참조하십시오.class
보안 개체의 클래스 이름(해당되는 경우)입니다.securable
감사 동작 또는 감사 동작 그룹을 적용할 데이터베이스의 테이블, 뷰 또는 기타 보안 개체입니다. 자세한 내용은 보안 개체를 참조하십시오.principal
감사 동작 또는 감사 동작 그룹을 적용할 SQL Server 보안 주체의 이름입니다. 자세한 내용은 보안 주체(데이터베이스 엔진)를 참조하십시오.WITH ( STATE = { ON | OFF } )
감사에서 이 감사 사양에 대한 레코드를 수집하거나 수집하지 못하도록 설정합니다.
주의
데이터베이스 감사 사양은 지정된 데이터베이스에 있는 비보안 개체입니다. 데이터베이스 감사 사양을 처음 만들 때는 사용할 수 없는 상태입니다.
사용 권한
ALTER ANY DATABASE AUDIT권한이 있는 사용자는 데이터베이스 감사 사양을 만들어 모든 감사에 바인딩할 수 있습니다.
생성된 데이터베이스 감사 사양은 CONTROL SERVER,ALTER ANY DATABASE AUDIT권한이 있는 보안 주체나 sysadmin 계정이 볼 수 있습니다.
예
다음 예에서는 Payrole_Security_Audit라는 서버 감사를 만들고 AdventureWorks2008R2 데이터베이스의 HumanResources.EmployeePayHistory 테이블에 대해 dbo 사용자의 SELECT 및 INSERT 문을 감사하는 Payrole_Security_Audit라는 데이터베이스 감사 사양을 만듭니다.
USE master ;
GO
-- Create the server audit.
CREATE SERVER AUDIT Payrole_Security_Audit
TO FILE ( FILEPATH =
'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA' ) ;
GO
-- Enable the server audit.
ALTER SERVER AUDIT Payrole_Security_Audit
WITH (STATE = ON) ;
GO
-- Move to the target database.
USE AdventureWorks2008R2 ;
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 dbo )
WITH (STATE = ON) ;
GO
참고 항목