서버 감사 및 서버 감사 사양 만들기
적용 대상: SQL Server
이 항목에서는 SQL Server Management Studio 또는 Transact-SQL을 사용하여 SQL Server에서 서버 감사 및 서버 감사 사양을 만드는 방법에 대해 설명합니다. SQL Server 또는 SQL Server 데이터베이스의 인스턴스를 감사하는 작업에는 시스템에서 발생하는 이벤트를 추적하고 기록하는 작업이 포함됩니다. SQL Server Audit 개체는 사용자가 모니터링하려는 서버 또는 데이터베이스 수준 동작 및 동작 그룹에 대한 하나의 인스턴스를 수집합니다. 감사는 SQL Server 인스턴스 수준에 있습니다. SQL Server 인스턴스 별로 여러 감사가 있을 수 있습니다. 서버 감사 사양 개체는 감사에 속합니다. 둘 다 SQL Server 인스턴스 범위에서 만들어지므로 감사당 하나의 서버 감사 사양을 만들 수 있습니다. 자세한 내용은 SQL Server Audit(데이터베이스 엔진)을 참조하세요.
항목 내용
시작하기 전 주의 사항:
서버 감사 및 데이터베이스 감사 사양을 만들려면 다음을 사용합니다.
시작하기 전에
제한 사항
감사가 있어야 이에 대한 서버 감사 사양을 만들 수 있습니다. 서버 감사 사양을 처음 만들 때는 사용할 수 없는 상태입니다.
CREATE SERVER AUDIT 문은 트랜잭션 범위 내에 있습니다. 트랜잭션이 롤백되면 이 문도 롤백됩니다.
보안
사용 권한
서버 감사를 생성, 변경 또는 삭제하려면 보안 주체에게 ALTER ANY SERVER AUDIT 또는 CONTROL SERVER 권한이 있어야 합니다.
ALTER ANY SERVER AUDIT 권한이 있는 사용자는 서버 감사 사양을 만들어 모든 감사에 바인딩할 수 있습니다.
만들어진 서버 감사 사양은 CONTROL SERVER 또는 ALTER ANY SERVER AUDIT 권한이 있는 보안 주체, sysadmin 계정 또는 감사에 대한 명시적인 액세스가 있는 보안 주체가 볼 수 있습니다.
SQL Server Management Studio 사용
서버 감사 만들기
개체 탐색기에서 보안 폴더를 펼칩니다.
감사 폴더를 마우스 오른쪽 단추로 클릭하고 새 감사...를 선택합니다.
감사 만들기 대화 상자의 일반 페이지에는 다음과 같은 옵션이 제공됩니다.
감사 이름
감사 이름입니다. 새 감사를 만들 때 자동 생성되지만 편집할 수 있습니다.쿼리 연기(밀리초)
감사 동작이 강제 처리되기 전까지 허용되는 시간(밀리초)을 지정합니다. 값이 0인 경우 동기 배달을 나타냅니다. 기본 최솟값은 1000(1초)입니다. 최대값은 2,147,483,647로 2,147,483.647초 또는 24일, 20시간, 31분, 23.647초에 해당합니다.감사 로그 실패 시:
계속
SQL Server 작업을 계속합니다. 감사 레코드는 보존되지 않습니다. 감사는 계속해서 이벤트 기록을 로깅하며 실패 조건이 해결되면 다시 시작합니다. 계속 옵션을 선택하면 감사되지 않는 활동이 허용되어 보안 정책을 위반할 수 있습니다. 전체 감사를 유지 관리하는 것보다 데이터베이스 엔진의 작업을 계속하는 것이 더 중요하면 이 옵션을 선택하세요. 기본적으로 이 옵션이 선택되어 있습니다.서버 종료
대상에 쓰는 서버 인스턴스가 감사 대상에 데이터를 쓸 수 없는 경우 서버를 강제로 종료합니다. 이를 실행하는 로그인에는 SHUTDOWN 권한이 있어야 합니다. 로그온에 이 권한이 없으면 이 함수가 실패하고 오류 메시지가 표시됩니다. 감사된 이벤트가 발생하지 않습니다. 감사 실패로 인해 시스템 무결성 또는 보안이 손상될 수 있는 경우 이 옵션을 선택하세요.작업 실패
SQL Server 감사에서 감사 로그에 쓸 수 없는 경우 이 옵션을 사용하면 데이터베이스 작업이 실패하게 됩니다. 그렇지 않으면 감사된 이벤트를 발생합니다. 감사된 이벤트가 발생하지 않습니다. 감사된 이벤트를 발생시키지 않는 동작은 계속할 수 있습니다. 감사는 계속해서 이벤트 기록을 로깅하며 실패 조건이 해결되면 다시 시작합니다. 데이터베이스 엔진에 대한 모든 권한을 얻는 것보다 전체 감사를 유지 관리하는 것이 더 중요하면 이 옵션을 선택하세요.Important
감사가 실패한 상태여도 관리자 전용 연결에서는 감사된 이벤트를 계속 수행할 수 있습니다.
감사 대상 목록
데이터를 감사할 대상을 지정합니다. 사용 가능한 옵션은 이진 파일, Windows 애플리케이션 로그 또는 Windows 보안 로그입니다. SQL Server 가 Windows 보안 로그에 쓸 수 없습니다. 자세한 내용은 보안 로그에 SQL Server Audit 이벤트 쓰기를 참조하세요.파일 경로
감사 대상 이 파일인 경우 감사 데이터를 쓸 폴더의 위치를 지정합니다.줄임표(...)
폴더 찾기 –server_name 대화 상자를 열어 파일 경로를 지정하거나 감사 파일이 기록된 폴더를 만듭니다.감사 파일의 최대 제한:
최대 롤오버 파일
감사 파일의 최대 수에 도달하면 가장 오래된 감사 파일을 새 파일 내용으로 덮어쓰도록 지정합니다.최대 파일
최대 감사 파일 수에 도달하면 추가 감사 이벤트를 생성하는 동작이 실패하며 오류가 발생하도록 지정합니다.무제한 확인란
최대 롤오버 파일 아래의 무제한 확인란이 선택된 경우 만들려는 감사 파일 수에 대한 제한이 없습니다. 무제한 확인란은 기본적으로 선택되며 최대 롤오버 파일과 최대 파일 선택 모두에 적용됩니다.파일 수 상자
만들 감사 파일 수를 최대 2,147,483,647개까지 지정합니다. 이 옵션은 무제한을 선택 취소한 경우에만 사용할 수 있습니다.최대 파일 크기
MB(메가바이트), GB(기가바이트) 또는 TB(테라바이트) 단위로 감사 파일의 최대 크기를 지정합니다. 최대 2,147,483,647TB의 숫자를 지정할 수 있습니다. 무제한 확인란을 선택하면 파일 크기에 대한 제한이 없습니다. 무제한 확인란은 기본적으로 선택되어 있습니다.디스크 공간 예약 확인란
지정된 최대 파일 크기와 동일한 공간이 디스크에 사전 할당되도록 지정합니다. 이 설정은 최대 파일 크기 아래의 무제한 확인란을 선택하지 않은 경우에만 사용할 수 있습니다. 이 확인란은 기본적으로 선택되어 있지 않습니다.또는 필터 페이지에서 조건자를 입력하거나
WHERE
절을 서버 감사에 입력하여 일반 페이지에서 사용할 수 없는 추가 옵션을 지정할 수 있습니다. 조건자를 괄호로 묶습니다. 예:(object_name = 'EmployeesTable')
옵션 선택을 완료하면 확인을 클릭합니다.
서버 감사 사양 만들기
개체 탐색기에서 더하기 연산자를 클릭하여 보안 폴더를 펼칩니다.
서버 감사 사양 폴더를 마우스 오른쪽 단추로 클릭하고 새 서버 감사 사양...을 선택합니다.
서버 감사 사양 대화 상자에는 다음과 같은 옵션이 제공됩니다.
이름
서버 감사 사양의 이름입니다. 새 서버 감사 사양을 만들 때 자동 생성되지만 편집할 수 있습니다.감사
기존 서버 감사의 이름입니다. 감사 이름을 입력하거나 목록에서 선택합니다.감사 작업 유형
캡처할 서버 수준 감사 작업 그룹 및 감사 작업을 지정합니다. 서버 수준 감사 동작 그룹 및 감사 동작의 목록과 여기에 포함된 이벤트에 대한 설명은 SQL Server Audit 동작 그룹 및 동작을 참조하세요.개체 스키마
지정된 개체 이름에 대한 스키마를 표시합니다.개체 이름
감사 개체의 이름입니다. 이 이름은 감사 동작에만 사용할 수 있으며 감사 그룹에는 적용되지 않습니다.줄임표(...)
개체 선택 대화를 열고 지정된 감사 작업 유형에 따라 사용 가능한 개체를 찾아 선택합니다.보안 주체 이름
감사 중인 개체에 대한 감사 필터링의 기준이 되는 계정입니다.줄임표(...)
개체 선택 대화를 열고 지정된 개체 이름에 따라 사용 가능한 개체를 찾아 선택합니다.완료되면 확인을 클릭합니다.
Transact-SQL 사용
서버 감사 만들기
개체 탐색기에서 데이터베이스 엔진인스턴스에 연결합니다.
표준 도구 모음에서 새 쿼리를 클릭합니다.
다음 예를 복사하여 쿼리 창에 붙여 넣고 실행을 클릭합니다.
-- Creates a server audit called "HIPAA_Audit" with a binary file as the target and no options. CREATE SERVER AUDIT HIPAA_Audit TO FILE ( FILEPATH ='E:\SQLAudit\' );
참고 항목
UNC 경로를 감사 파일 대상으로 사용할 수 있지만 주의해야 합니다. 해당 파일 공유에 대한 네트워크 대기 시간이 있는 경우 스레드가 계속하기 전에 감사 쓰기가 완료될 때까지 기다리므로 SQL Server에서 성능 저하를 경험할 수 있습니다. SQL Server 오류 로그에서 17894와 같은 다양한 오류 메시지가 나타날 수 있습니다.
2020-02-07 12:21:35.100 디스패처 풀 'XE 엔진 기본 디스패처 풀' 작업자 0x00000058E7300000의 Server Dispatcher(0x7954)가 노드 0에서 생성되지 않는 것으로 표시됩니다.
서버 감사 사양 만들기
개체 탐색기에서 데이터베이스 엔진인스턴스에 연결합니다.
표준 도구 모음에서 새 쿼리를 클릭합니다.
다음 예를 복사하여 쿼리 창에 붙여 넣고 실행을 클릭합니다.
/*Creates a server audit specification called "HIPAA_Audit_Specification" that audits failed logins for the SQL Server audit "HIPAA_Audit" created above. */ CREATE SERVER AUDIT SPECIFICATION HIPAA_Audit_Specification FOR SERVER AUDIT HIPAA_Audit ADD (FAILED_LOGIN_GROUP); GO -- Enables the audit. ALTER SERVER AUDIT HIPAA_Audit WITH (STATE = ON); GO
자세한 내용은 CREATE SERVER AUDIT(Transact-SQL) 및 CREATE SERVER AUDIT SPECIFICATION(Transact-SQL)을 참조하세요.