6.3.13.6 감사 로그 플러그인 옵션 및 시스템 변수
이 섹션에서는 감사 로그 플러그인 작업을 제어하는 명령 옵션 및 시스템 변수에 대해 설명합니다. 시작할 때 지정된 값이 잘못된 경우 플러그인이 제대로 초기화되지 않을 수 있으며, 서버에서로드되지 않습니다. 이 경우 서버에서 다른 감사 로그 설정이 인식되지 않기 때문에 이에 대한 오류 메시지가 생성 될 가능성도 있습니다.
audit_log 플러그인의 활성화를 제어하려면 다음 옵션을 사용합니다.
--audit-log[=value]이 옵션은 서버를 시작할 때Introduced 5.6.10 Command-Line Format --audit-log[=value]Permitted Values Type enumerationDefault ONValid Values ONOFFFORCEFORCE_PLUS_PERMANENTaudit_log플러그인을로드하는 방법을 제어합니다. 이것은 감사 로그 플러그인이 사전에INSTALL PLUGIN에 등록되어 있거나--plugin-load를 사용하여로드되는 경우에만 지정 가능합니다. 섹션 6.3.12.1 "감사 로그 플러그인 설치" 를 참조하십시오.섹션 5.1.8.1 "플러그인 설치 및 제거" 에 설명 된대로 옵션 값은 플러그인로드 옵션에 가능한 값 중 하나 여야합니다. 예를 들어,
--audit-log=FORCE_PLUS_PERMANENT플러그인을로드하고 그 서버를 실행할 때 삭제되는 것을 방지하도록 서버에 지시합니다.이 옵션은 MySQL 5.6.10에서 추가되었다.
audit_log플러그인이 설치되어있는 경우에는 로깅에 대한 제어를 허용하는 여러 시스템 변수가 표시됩니다. 이러한 변수는audit_log플러그인이 활성화되어있는 경우에만 지정할 수 있습니다.
mysql> SHOW VARIABLES LIKE 'audit_log%';
+-----------------------------+--------------+
| Variable_name | Value |
+-----------------------------+--------------+
| audit_log_buffer_size | 1048576 |
| audit_log_connection_policy | ALL |
| audit_log_current_session | ON |
| audit_log_exclude_accounts | |
| audit_log_file | audit.log |
| audit_log_flush | OFF |
| audit_log_format | OLD |
| audit_log_include_accounts | |
| audit_log_policy | ALL |
| audit_log_rotate_on_size | 0 |
| audit_log_statement_policy | ALL |
| audit_log_strategy | ASYNCHRONOUS |
+-----------------------------+--------------+
이러한 변수 모두 서버 시작시 (일부는 실행시)에 설정할 수 있습니다.
audit_log_buffer_size감사 로그 플러그인이 비동기 적으로 이벤트를 로그에 기록 이벤트의 내용을 기록하기 전에 버퍼를 사용하여 그들을 저장합니다. 이 변수는 버퍼의 크기 (바이트)를 제어합니다. 서버는이 값을 4096의 배수로 조정합니다. 이 플러그인은 초기화시에 할당 종료시 삭제되는 단일 버퍼가 사용됩니다. 이 플러그인은 로깅이 비동기 경우에만이 버퍼를 할당합니다.Introduced 5.6.10 Command-Line Format --audit_log_buffer_size=valueSystem Variable Name audit_log_buffer_sizeVariable Scope Global Dynamic Variable No Permitted Values (32-bit platforms) Type integerDefault 1048576Min Value 4096Max Value 4294967295Permitted Values (64-bit platforms) Type integerDefault 1048576Min Value 4096Max Value 18446744073709547520이 변수는 MySQL 5.6.10에서 추가되었다.
audit_log_connection_policy감사 로그 플러그인이 연결 이벤트를 로그 파일에 쓰는 방법을 제어하는 정책입니다. 다음 표는 허용되는 값을 보여줍니다.Introduced 5.6.20 Command-Line Format --audit_log_connection_policy=valueSystem Variable Name audit_log_connection_policyVariable Scope Global Dynamic Variable Yes Permitted Values Type enumerationDefault ALLValid Values ALLERRORSNONE값 설명 ALL연결 이벤트의 로그를 기록합니다 ERRORS실패한 연결 이벤트 로그 만 기록합니다 NONE연결 이벤트의 로그를 기록하지 않습니다 참고섹션 6.3.12.4 "감사 로그 플러그인의 로깅 제어" 에서 설명한 바와 같이,
audit_log_policy도 지정되어있는 경우, 서버 시작시audit_log_connection_policy에 명시 적으로 지정된 값이 재정의 될 수 있습니다 .이 변수는 MySQL 5.6.20에서 추가되었다.
audit_log_current_session현재 세션에서 감사 로깅이 활성화되어 있는지 여부를 나타냅니다. 이 변수의 세션 값은 읽기 전용입니다. 세션 시작시Introduced 5.6.20 System Variable Name audit_log_current_sessionVariable Scope Global, Session Dynamic Variable No Permitted Values Type booleanDefault depends on filtering policyaudit_log_include_accounts및audit_log_exclude_accounts시스템 변수의 값에 따라 설정됩니다. 감사 로그 플러그인이 세션 값을 사용하여 해당 세션에서 이벤트를 감사할지 여부를 결정합니다. (글로벌 값도 있지만,이 플러그인은 사용되지 않습니다.)이 변수는 MySQL 5.6.20에서 추가되었다.
audit_log_exclude_accounts이벤트가 기록되지 않는 계정입니다. 이 값은Introduced 5.6.20 Command-Line Format --audit_log_exclude_accounts=valueSystem Variable Name audit_log_exclude_accountsVariable Scope Global Dynamic Variable Yes Permitted Values Type stringDefault NULLNULL또는 쉼표로 구분 된 하나 이상의 계정 이름 목록이 포함 된 문자열을 지정하도록하십시오. 자세한 내용은 섹션 6.3.12.4 "감사 로그 플러그인의 로깅 제어" 를 참조하십시오.이 변수는 MySQL 5.6.20에서 추가되었다.
audit_log_file감사 로그 플러그인이 이벤트를 기록하는 파일의 이름. 기본값은Introduced 5.6.10 Command-Line Format --audit_log_file=file_nameSystem Variable Name audit_log_fileVariable Scope Global Dynamic Variable No Permitted Values Type file nameDefault audit.logaudit.log입니다. 파일 이름이 상대 경로 인 경우, 서버는 데이터 디렉토리에 상대적인 경로로 해석합니다. 보안상의 이유로 감사 로그 파일은 MySQL 서버 및 로그를 표시하는 정당한 이유를 가진 사용자 만 액세스 할 수있는 디렉토리에 저장해야합니다.이 변수는 MySQL 5.6.10에서 추가되었다.
audit_log_flush이 변수가 활성화되도록 (1 또는Introduced 5.6.10 System Variable Name audit_log_flushVariable Scope Global Dynamic Variable Yes Permitted Values Type booleanDefault OFFON)으로 설정되어있는 경우 감사 로그 플러그인은 로그 파일을 닫았다가 다시 열고 플래시합니다. (이 값은 다른 플래시를 실행하기 위해 다시 사용하기 전에 명시 적으로 해제 할 필요가 없도록OFF상태로 남아 있습니다.)audit_log_rotate_on_size가 0 인 경우를 제외하고 이 변수를 사용하여도 효과는 없습니다.이 변수는 MySQL 5.6.10에서 추가되었다.
audit_log_format감사 로그 파일 형식입니다. 허용되는 값은Introduced 5.6.14 Command-Line Format --audit_log_format=valueSystem Variable Name audit_log_formatVariable Scope Global Dynamic Variable No Permitted Values (>= 5.6.14) Type enumerationDefault OLDValid Values OLDNEWOLD및NEW(기본값OLD)입니다. 각 형식에 대한 자세한 내용은 섹션 6.3.12.3 "감사 로그 파일" 을 참조하십시오.audit_log_format값을 변경하려면 다음 단계를 사용하여 특정 형식의 로그 항목이 다른 형식의 항목을 포함한 기존 로그 파일에 기록되는 것을 방지합니다.서버를 중지합니다.
현재 감사 로그 파일의 이름을 수동으로 변경합니다.
새로운
audit_log_format값으로 서버를 다시 시작합니다. 감사 로그 플러그인에서 선택한 형식의 로그 항목을 포함하는 새 로그 파일이 만들어집니다.
이 변수는 MySQL 5.6.14에서 추가되었다.
audit_log_include_accounts이벤트 로그가 기록되는 계정입니다. 이 값은Introduced 5.6.20 Command-Line Format --audit_log_include_accounts=valueSystem Variable Name audit_log_include_accountsVariable Scope Global Dynamic Variable Yes Permitted Values Type stringDefault NULLNULL또는 쉼표로 구분 된 하나 이상의 계정 이름 목록이 포함 된 문자열을 지정하도록하십시오. 자세한 내용은 섹션 6.3.12.4 "감사 로그 플러그인의 로깅 제어" 를 참조하십시오.이 변수는 MySQL 5.6.20에서 추가되었다.
audit_log_policyIntroduced 5.6.10 Command-Line Format --audit_log_policy=valueSystem Variable (<= 5.6.19) Name audit_log_policyVariable Scope Global Dynamic Variable Yes System Variable (>= 5.6.20) Name audit_log_policyVariable Scope Global Dynamic Variable No Permitted Values Type enumerationDefault ALLValid Values ALLLOGINSQUERIESNONE감사 로그 플러그인이 이벤트를 로그 파일에 쓰는 방법을 제어하는 정책입니다. 다음 표는 허용되는 값을 보여줍니다.
MySQL 5.6.20 시점에서Value Description ALL이벤트 로그를 기록합니다
LOGINS로그인 이벤트 로그 만 기록합니다
QUERIES쿼리 이벤트 로그 만 기록합니다 NONE로그 아무것도 기록하지 않습니다
audit_log_policy는 서버가 시작될 때만 설정할 수 없습니다. 실행시 읽기 전용 변수입니다. 이것은 더 자세한 로깅 정책을 제어하고 시작할 때 또는 런타임에 설정할 수있는 다른 2 개의 시스템 변수 (audit_log_connection_policy과audit_log_statement_policy)이 도입 된 것입니다. 다른 두 변수 대신 시작할 때audit_log_policy를 계속 사용하면 서버는 그 값을 사용하여 이러한 변수를 설정합니다. 정책 변수 간의 상호 작용에 대한 자세한 내용은 섹션 6.3.12.4 "감사 로그 플러그인의 로깅 제어" 를 참조하십시오.MySQL 5.6.20 이전에는
audit_log_connection_policy및audit_log_statement_policy시스템 변수가 존재하지 않습니다.audit_log_policy는 유일한 정책 제어 변수이며, 서버 시작시 또는 실행시에 설정할 수 있습니다.이 변수는 MySQL 5.6.10에서 추가되었다
audit_log_rotate_on_sizeIntroduced 5.6.10 Command-Line Format --audit_log_rotate_on_size=NSystem Variable Name audit_log_rotate_on_sizeVariable Scope Global Dynamic Variable Yes Permitted Values Type integerDefault 0audit_log_rotate_on_size값을 0보다 큰 경우, 파일에 쓰기에 의해 그 크기가이 값을 초과하면 감사 로그 플러그인은 로그 파일을 닫았다가 다시 엽니 다. 원래 파일 이름은 타임 스탬프 확장자가 포함되도록 변경됩니다.audit_log_rotate_on_size값이 0의 경우 플러그인은 크기에 따라 로그를 닫고 다시 열리지 않습니다. 대신audit_log_flush사용하여 요청에 따라 로그를 닫고 다시 엽니 다. 이 경우 파일을 플래시하기 전에 서버의 외부에서 파일 이름을 변경합니다.감사 로그 파일 회전 및 타임 스탬프의 해석에 대한 자세한 내용은 섹션 6.3.12.4 "감사 로그 플러그인의 로깅 제어" 를 참조하십시오.
이 변수를 4096의 배수가 아닌 값으로 설정하면 가장 가까운 배수로 잘립니다. (따라서 4096 미만의 값으로 설정하면 0 (영)으로 설정 한 결과가되어, 순환은 발생하지 않습니다.)
이 변수는 MySQL 5.6.10에서 추가되었다.
audit_log_statement_policyIntroduced 5.6.20 Command-Line Format --audit_log_statement_policy=valueSystem Variable Name audit_log_statement_policyVariable Scope Global Dynamic Variable Yes Permitted Values Type enumerationDefault ALLValid Values ALLERRORSNONE감사 로그 플러그인이 문 이벤트를 로그 파일에 쓰는 방법을 제어하는 정책입니다. 다음 표는 허용되는 값을 보여줍니다.
Value Description ALL문 이벤트 로그를 기록합니다
ERRORS실패한 명령문 이벤트 로그 만 기록합니다
NONE명령문 이벤트 로그를 기록하지 않습니다
참고섹션 6.3.12.4 "감사 로그 플러그인의 로깅 제어" 에서 설명한 바와 같이, audit_log_policy 도 지정되어있는 경우, 서버 시작시 audit_log_statement_policy 에 명시 적으로 지정된 값이 재정의 될 수 있습니다
이 변수는 MySQL 5.6.20에서 추가되었다.
audit_log_strategyIntroduced 5.6.10 Command-Line Format --audit_log_strategy=valueSystem Variable Name audit_log_strategyVariable Scope Global Dynamic Variable No Permitted Values Type enumerationDefault ASYNCHRONOUSValid Values ASYNCHRONOUSPERFORMANCESEMISYNCHRONOUSSYNCHRONOUS감사 로그 플러그인에서 사용되는 로깅 방법. 다음 표에서는 허용되는 값에 대해 설명합니다.
표 6.18 감사 로그의 전략
값 의미 ASYNCHRONOUS비동기 적으로 기록하고 출력 버퍼의 영역을 기다립니다 PERFORMANCE비동기 적으로 기록하고 출력 버퍼의 공간이 충분하지 않은 경우 요청을 취소합니다 SEMISYNCHRONOUS동 기적으로 기록하고 운영 체제에 의한 캐싱을 허용합니다 SYNCHRONOUS동 기적으로 기록하고 각 요청 후에 sync()를 호출합니다이 변수는 MySQL 5.6.10에서 추가되었다.