6.3.12 MySQL Enterprise Audit 로그 플러그인
MySQL Enterprise Audit는 상용 확장 기능입니다. 상용 제품 (MySQL Enterprise Edition)에 대해 자세히 학습하려면 http : //www.mysql.com/products/를 참조하십시오.
MySQL 5.6.10 시점에서 MySQL Enterprise Edition에는 audit_log
라는 서버 플러그인을 사용하여 구현 된 MySQL Enterprise Audit이 포함되어 있습니다. MySQL Enterprise Audit에서는 특정 MySQL 서버에서 실행되는 연결 및 쿼리 활동의 정책 기반의 표준 모니터링 및 로깅을 활성화 할 때 MySQL Audit API가 사용됩니다. MySQL Enterprise Audit는 오라클의 감사 사양을 충족하도록 설계되어 있으며, 내부 및 외부 규제 지침에 모두 관리되는 응용 프로그램에 그대로 쉽게 사용할 수있는 감사 및 컴플라이언스 솔루션을 제공합니다 있습니다.
설치할 때 감사 플러그인을 사용하면 MySQL 서버는 서버 활동의 감사 레코드를 포함하는 로그 파일을 생성 할 수 있습니다. 로그의 내용에는 클라이언트가 연결 및 분리 할 때와 연결된 상태에서 실행 된 작업 (액세스 된 데이터베이스 나 테이블 등)가 포함됩니다.
플러그인을 설치하면 ( 섹션 6.3.12.1 "감사 로그 플러그인 설치" 를 참조하십시오) 감사 로그 파일이 기록됩니다. 기본적으로 파일은 서버의 데이터 디렉토리의 audit.log
라고합니다. 파일의 이름을 변경하려면 서버를 시작할 때 audit_log_file
시스템 변수를 설정합니다.
감사 로그 파일의 내용은 암호화되지 않습니다. 섹션 6.3.12.2 "감사 로그 플러그인의 보안 고려 사항" 을 참조하십시오.
감사 로그 파일은 <AUDIT_RECORD>
요소로 인코딩 된 감사 가능한 이벤트와 함께 XML 형식으로 기록됩니다. 파일 형식을 선택하려면 서버를 시작할 때 audit_log_format
시스템 변수를 설정합니다. 파일의 형식 및 내용에 대한 자세한 내용은 섹션 6.3.12.3 "감사 로그 파일" 을 참조하십시오.
audit_log
의해 로그 파일에 기록되는 정보의 내용을 제어하려면 audit_log_policy
시스템 변수를 설정합니다. 이 변수는 기본적으로 ALL
(감사 가능한 이벤트를 모두 기록)로 설정되어 있지만 로그인 또는 쿼리 이벤트 로그 만 기록 LOGINS
또는 QUERIES
및 로깅을 비활성화하는 NONE
값도 허용되지 합니다.
로깅이 발생하는 방법의 제어에 대한 자세한 내용은 섹션 6.3.12.4 "감사 로그 플러그인의 로깅 제어" 를 참조하십시오. 감사 로그 플러그인을 구성하는 데 사용되는 매개 변수는 섹션 6.3.12.6 "감사 로그 플러그인 옵션 및 시스템 변수" 를 참조하십시오.
audit_log
플러그인이 활성화되어있는 경우 성능 스키마 ( 제 22 장 「MySQL 성능 스키마 " 를 참조하십시오) 감사 로그 플러그인에 대한 계측이 추가됩니다. 관련 instrument를 식별하려면 다음 쿼리를 사용합니다.
SELECT NAME FROM performance_schema.setup_instruments WHERE NAME LIKE '% / alog / %';
오래된 감사 로그 플러그인 버전에서 변경
MySQL 5.6.14에서는 Oracle Audit Vault와의 호환성을 높이기 위해 감사 로그 플러그인에 일부 변경되었습니다.
새로운 감사 로그 파일의 형식이 구현되었습니다. audit_log_format
시스템 변수를 사용하면 이전 형식 또는 새 형식을 선택할 수 있습니다. 이 변수는 OLD
와 NEW
(기본값 OLD
) 값이 허용되어 있습니다. 두 가지 형태의 차이점은 다음과 같습니다.
속성을 사용하여 이전 형식으로 기록 된
<AUDIT_RECORD>
요소 내의 정보는 하위 요소를 사용하여 새 형식으로 기록됩니다.새로운 형식은
<AUDIT_RECORD>
요소에 대한 자세한 정보가 포함되어 있습니다. 각 요소는 고유 식별자를 제공하는RECORD_ID
값이 포함되어 있습니다.TIMESTAMP
값은 표준 시간대 정보가 포함되어 있습니다. 쿼리 레코드에는HOST
,IP
,OS_LOGIN
,USER
정보 및COMMAND_CLASS
과STATUS_CODE
값이 포함되어 있습니다.
이전 <AUDIT_RECORD>
형식의 예 :
<AUDIT_RECORD TIMESTAMP = "2013-09-15T15 : 27 : 27" NAME = "Query" CONNECTION_ID = "3" STATUS = "0" SQLTEXT = "SELECT 1" />
새로운 <AUDIT_RECORD>
형식의 예 :
<AUDIT_RECORD> <TIMESTAMP> 2013-09-15T15 : 27 : 27 UTC </ TIMESTAMP> <RECORD_ID> 3998_2013-09-15T15 : 27 : 27 </ RECORD_ID> <NAME> Query </ NAME> <CONNECTION_ID> 3 </ CONNECTION_ID> <STATUS> 0 </ STATUS> <STATUS_CODE> 0 </ STATUS_CODE> <USER> root [root] @ localhost [127.0.0.1] </ USER> <OS_LOGIN> </ OS_LOGIN> <HOST> localhost </ HOST> <IP> 127.0.0.1 </ IP> <COMMAND_CLASS> select </ COMMAND_CLASS> <SQLTEXT> SELECT 1 </ SQLTEXT> </ AUDIT_RECORD>
감사 로그 플러그인에서 감사 로그 파일이 순환되면 다른 파일 이름 형식이 사용됩니다. audit.log
라는 로그 파일의 경우 이전에 플러그인으로 파일 이름이 audit.log.
로 변경되었습니다. 현재는 플러그인에서 파일 이름은 XML 파일임을 나타내는 TIMESTAMP
audit.log.
로 변경됩니다. TIMESTAMP
.xml
audit_log_format
값을 변경하려면 다음 단계를 사용하여 특정 형식의 로그 항목이 다른 형식의 항목을 포함한 기존 로그 파일에 기록되는 것을 방지합니다.
서버를 중지합니다.
현재 감사 로그 파일의 이름을 수동으로 변경합니다.
새로운
audit_log_format
값으로 서버를 다시 시작합니다. 감사 로그 플러그인에서 선택한 형식의 로그 항목을 포함하는 새 로그 파일이 만들어집니다.
감사 플러그인을 작성하기위한 API도 변경되었습니다. mysql_event_general
의 구조는 클라이언트의 호스트 이름과 IP 주소, 명령 클래스 및 외부 사용자를 나타내는 새로운 멤버가 포함되어 있습니다. 자세한 내용은 섹션 24.2.4.8 "감사 플러그인 만들기" 를 참조하십시오.