CREATE SERVER AUDIT(Transact-SQL)

SQL Server Audit를 사용하여 서버 감사 개체를 만듭니다. 자세한 내용은 SQL Server Audit 이해를 참조하십시오.

항목 링크 아이콘Transact-SQL 구문 표기 규칙

구문

CREATE SERVER AUDIT audit_name
{
    TO { [ FILE (<file_options> [ , ...n ]) ] | APPLICATION_LOG | SECURITY_LOG }
    [ WITH ( <audit_options> [ , ...n ] ) ] 
}
[ ; ]
<file_options>::=
{
       FILEPATH ='os_file_path'
    [ , MAXSIZE = { max_size { MB | GB | TB } | UNLIMITED } ]
    [ , MAX_ROLLOVER_FILES = { integer | UNLIMITED } ]
    [ , RESERVE_DISK_SPACE = { ON | OFF } ] 
}
  
<audit_options>::=
{
    [  QUEUE_DELAY =integer ]
    [ , ON_FAILURE = { CONTINUE | SHUTDOWN } ]
    [ , AUDIT_GUID =uniqueidentifier ]
}

인수

  • TO { FILE | APPLICATION_LOG | SECURITY }
    감사 대상의 위치를 결정합니다. 옵션으로는 이진 파일, Windows 응용 프로그램 로그, Windows 보안 로그 등이 있습니다. Windows에서 추가 설정을 구성하지 않으면 SQL Server가 Windows 보안 로그에 쓸 수 없습니다. 자세한 내용은 방법: 보안 로그에 서버 감사 이벤트 쓰기를 참조하십시오.

    [!참고]

    Windows XP에서는 보안 로그에 쓸 수 없습니다.

  • FILEPATH ='os_file_path'
    감사 로그의 경로입니다. 파일 이름은 감사 이름과 감사 GUID를 기준으로 생성됩니다.

  • MAXSIZE = { max_size }
    감사 파일이 증가할 수 있는 최대 크기를 지정합니다. max_size 값은 정수여야 하며 뒤에 MB, GB, TB 또는 UNLIMITED가 와야 합니다. max_size에 대해 지정할 수 있는 최소 크기는 2MB이고 최대 크기는 2,147,483,647TB입니다. UNLIMITED를 지정하는 경우 디스크가 꽉 찰 때까지 파일이 증가합니다. 2MB보다 작은 값을 지정하면 MSG_MAXSIZE_TOO_SMALL 오류가 발생합니다. 기본값은 UNLIMITED입니다.

  • MAX_ROLLOVER_FILES ={ integer | UNLIMITED }
    현재 파일 외에 파일 시스템에 보관할 최대 파일 수를 지정합니다. MAX_ROLLOVER_FILES 값은 정수 또는 UNLIMITED여야 합니다. 기본값은 UNLIMITED입니다. 이 매개 변수는 데이터베이스 엔진 인스턴스가 다시 시작되거나 감사가 해제된 후 다시 활성화되어 감사가 다시 시작될 때마다 계산되거나 MAXSIZE에 도달하여 새 파일이 필요할 때 계산됩니다.  MAX_ROLLOVER_FILES가 계산될 때 파일 수가 MAX_ROLLOVER_FILES 설정을 초과하면 가장 오래된 파일부터 삭제됩니다. 따라서 MAX_ROLLOVER_FILES 설정이 0이면 MAX_ROLLOVER_FILES 설정이 계산될 때마다 새 파일이 만들어집니다. MAX_ROLLOVER_FILES 설정이 계산될 경우 하나의 파일만 자동으로 삭제되므로 MAX_ROLLOVER_FILES 값을 줄이면 오래된 파일을 수동으로 삭제하지 않는 한 파일 수가 줄어들지 않습니다. 지정할 수 있는 최대 파일 수는 2,147,483,647입니다.

  • RESERVE_DISK_SPACE = { ON | OFF }
    이 옵션은 디스크의 파일을 MAXSIZE 값으로 미리 할당하며, MAXSIZE가 UNLIMITED가 아닌 경우에만 적용됩니다. 기본값은 OFF입니다.

  • QUEUE_DELAY =integer
    감사 동작이 강제 처리되기 전까지 허용되는 시간(밀리초)을 지정합니다. 값이 0인 경우 동기 배달을 나타냅니다. 설정 가능한 최소 쿼리 지연 값은 1000입니다. 이 값은 1초에 해당하며 기본값입니다. 최대값은 2,147,483,647로 2,147,483.647초 또는 24일, 20시간, 31분, 23.647초에 해당합니다. 잘못된 수를 지정하면 MSG_INVALID_QUEUE_DELAY 오류가 발생합니다.

  • ON_FAILURE = { CONTINUE | SHUTDOWN }
    대상에서 쓰기를 수행할 수 없는 경우 대상에 쓰는 인스턴스를 계속할지 또는 중지할지를 나타냅니다. 이 함수를 실행하는 로그인은 SHUTDOWN 권한이 있어야 합니다. 로그온에 이 권한이 없으면 이 함수가 실패하고 MSG_NO_SHUTDOWN_PERMISSION 메시지가 나타납니다. 기본값은 CONTINUE입니다.

  • AUDIT_GUID =uniqueidentifier
    데이터베이스 미러링과 같은 시나리오를 지원하려면 미러된 데이터베이스에서 찾은 GUID와 일치하는 특정 GUID가 감사에 필요합니다. 감사가 만들어진 후에는 이 GUID를 수정할 수 없습니다.

주의

서버 감사를 처음 만들 때는 사용할 수 없는 상태입니다.

CREATE SERVER AUDIT 문은 트랜잭션 범위 내에 있습니다. 트랜잭션이 롤백되면 이 문도 롤백됩니다.

사용 권한

서버 감사를 생성, 변경 또는 삭제하려면 보안 주체에게 ALTER ANY SERVER AUDIT 또는 CONTROL SERVER 권한이 있어야 합니다.

감사 정보를 파일에 저장할 때 변조를 방지하기 위해 파일 위치에 대한 액세스를 제한합니다.

1. 파일 대상을 사용하여 서버 감사 만들기

다음 예에서는 이진 파일을 대상으로 사용하고 옵션 없이 HIPPA_Audit라는 서버 감사를 만듭니다.

CREATE SERVER AUDIT HIPAA_Audit
    TO FILE ( FILEPATH ='\\SQLPROD_1\Audit\' );

2. Windows 응용 프로그램 로그 대상과 옵션을 사용하여 서버 감사 만들기

다음 예에서는 Windows 응용 프로그램 로그에 대한 대상 집합을 사용하여 HIPPA_Audit라는 서버 감사를 만듭니다. 큐가 1초마다 기록되고 실패 시 SQL Server 엔진을 종료합니다.

CREATE SERVER AUDIT HIPAA_Audit
    TO APPLICATION_LOG
    WITH ( QUEUE_DELAY = 1000,  ON_FAILURE = SHUTDOWN);

참고 항목

참조

개념