CREATE DATABASE AUDIT SPECIFICATION(Transact-SQL)
적용 대상: SQL Server Azure SQL Managed Instance
SQL Server Audit 기능을 사용하여 데이터베이스 감사 사양 개체를 만듭니다. 자세한 내용은 SQL Server Audit(데이터베이스 엔진)을 참조하세요.
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
데이터베이스 역할 멤버의 SELECT
및 INSERT
문을 감사하는 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
, SalesUK
및 Sales
문을 감사하는 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)
서버 감사 및 서버 감사 사양 만들기