mysql数据库审计(2)
日志设置
事件类型 | 说明 | Introduced |
CONNECT | 连接,断开连接和失败的连接-包括错误代码 | |
QUERY | 执行的查询及其结果为纯文本格式,包括由于语法或权限错误而导致的查询失败 | |
TABLE | 受查询执行影响的表 | |
QUERY_DDL | 同QUERY,但仅过滤DDL类型的查询(CREATE,ALTER,DROP,RENAME和TRUNCATE语句。除了CREATE/DROP [PROCEDURE / FUNCTION / USER]和RENAME USER(他们不是DDL) | MariaDB 5.5.42. MariaDB 10.0.17, MariaDB 10.1.4 |
QUERY_DML | 同QUERY,但仅过滤DML类型的查询(DO,CALL,LOAD DATA/XML,DELETE,INSERT,SELECT,UPDATE,HANDLER和REPLACE语句) | MariaDB 5.5.42, MariaDB 10.0.17, MariaDB 10.1.4 |
QUERY_DML_NO_SELECT | 与相同QUERY_DML,但不记录SELECT查询。(因为版本1.4.4)( DO,CALL,LOAD DATA/XML , 和 DELETE、INSERT、UPDATE、HANDLER、REPLACE 语句) | MariaDB 5.5.42, MariaDB 10.0.17, MariaDB 10.1.4 |
QUERY_DCL | 同QUERY,但仅过滤DCL型查询(CREATE USER,DROP USER,RENAME USER,GRANT,REVOKE和SET PASSWORD语句) | MariaDB 5.5.43, MariaDB 10.0.18, MariaDB 10.1.5 |
3.5. 插件选项和系统变量
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | SHOW GLOBAL VARIABLES LIKE '%server_audit%'; +-------------------------------+-----------------------+ | Variable_name | Value | +-------------------------------+-----------------------+ | server_audit_events | CONNECT,QUERY,TABLE | | server_audit_excl_users | | | server_audit_file_path | server_audit.log | | server_audit_file_rotate_now | OFF | | server_audit_file_rotate_size | 1000000 | | server_audit_file_rotations | 9 | | server_audit_incl_users | | | server_audit_logging | ON | | server_audit_mode | 0 | | server_audit_output_type | file | | server_audit_query_log_limit | 1024 | | server_audit_syslog_facility | LOG_USER | | server_audit_syslog_ident | mysql-server_auditing | | server_audit_syslog_info | | | server_audit_syslog_priority | LOG_INFO | +-------------------------------+-----------------------+ |
3.5.1. 系统变量
变量名 | 说明 | 命令行 | 范围 | 动态 | 数据类型 | 默认值 | 有效值 |
server_audit_events | 如果设置,则将审核日志记录限制为某些事件类型。如果未设置,则将每种事件类型记录到审核日志中。如: SET GLOBAL server_audit_events='connect, query' | --server-audit-events=value | 全局 | 是 | string | Empty string |
|
server_audit_excl_users | 如果不为空,则包含将不记录其活动的用户列表。如: SET GLOBAL server_audit_excl_users='user_foo, user_bar' 但 CONNECT 类型的记录仍会被记录。如果用户在 server_audit_incl_users 参数中被指定,则仍然会记录所有操作。 | --server-audit-excl-users=value | 全局 | 是 | string | Empty string | 长度限制:1024个字符 |
server_audit_file_path | 当 server_audit_output_type = file 时,将路径和文件名设置为日志文件。如果指定的路径作为目录存在,那么将在该目录内创建名为“ server_audit.log”的日志。否则,该值将被视为文件名。默认值为“ server_audit.log”,这意味着将在数据库目录中创建此文件。 | --server-audit-file-path=value | 全局 | 是 | string | server_audit.log | |
server_audit_file_rotate_now | 当 server_audit_output_type = file 时,用户可以通过将此变量设置为ON或1来强制轮换日志文件。 | --server-audit-rotate-now[={0|1}] | 全局 | 是 | boolean | OFF | |
server_audit_file_rotate_size | 当 server_audit_file_rotate_size = file 时,它限制了日志文件的大小。达到该限制将开启轮换-当前日志文件被重命名为“ file_path.1”。空日志文件将创建为“ file_path”以登录到该文件。默认值为1000000。 | --server-audit-rotate-size=# | 全局 | 是 | numeric | 1000000 | |
server_audit_file_rotations | 当 server_audit_output_type = file '时,它指定要保存的转数。如果设置为0,则日志永远不会旋转。预设值为9。 | --server-audit-rotations=# | 全局 | 是 | numeric | 9 | 0至999 |
server_audit_incl_users | 如果不为空,则包含将记录其活动的用户的逗号分隔列表。如: SET GLOBAL server_audit_incl_users='user_foo, user_bar' CONNECT记录不受此变量的影响-始终记录它们。此设置的优先级高于 server_audit_excl_users。因此,如果在incl_和excl_列表中同时指定了同一用户,则仍将其记录下来。 | --server-audit-incl-users=value | 全局 | 是 | string | Empty string | 长度限制:1024个字符 |
server_audit_loc_info | 由插件内部使用。对用户没有任何意义。
| 全局 | 否 | string | Empty string |
| |
server_audit_logging | 启用/禁用日志记录。期望值为ON / OFF。如: SET GLOBAL server_audit_logging=on 如果 server_audit_output_type 为 FILE,则实际上将创建/打开日志文件,因此应事先正确指定 server_audit_file_path。与SYSLOG相关的参数相同。默认情况下,日志记录处于关闭状态。 | --server-audit-logging[={0|1}] | 全局 | 是 | boolean | OFF | |
server_audit_mode | 此变量对用户没有任何特殊含义。其值主要反映了启动插件所使用的服务器版本,供开发人员用于测试。 | --server-audit-mode[=#] | |||||
server_audit_output_type | 指定所需的输出类型。可以是SYSLOG或FILE。例如: SET GLOBAL server_audit_output_type=file file:日志记录将保存到循环日志文件中。由 server_audit_file_path 变量设置的文件名。 syslog:日志记录将使用标准的<syslog.h> API发送到本地syslogd守护程序。默认值为“文件”。 | --server-audit-output-type=value | 全局 | 是 | enum | file | SYSLOG或FILE |
server_audit_query_log_limit | 对记录中查询字符串长度的限制。 | --server-audit-query-log-limit=# | 全局 | 是 | numeric | 1024 | 0至2147483647 |
server_audit_syslog_facility | SYSLOG模式变量。它定义了将发送到系统日志的记录的“功能”。以后可以使用此参数过滤日志。 | --server-audit-syslog-facility=value | 全局 | 是 | enum | LOG_USER | LOG_USER,LOG_MAIL,LOG_DAEMON,LOG_AUTH,LOG_SYSLOG,LOG_LPR,LOG_NEWS,LOG_UUCP,LOG_CRON,LOG_AUTHPRIV,LOG_FTP,和LOG_LOCAL0- LOG_LOCAL7 |
server_audit_syslog_ident | SYSLOG模式变量。每个系统日志记录的“ ident”部分的字符串值。默认值为“ mysql-server_auditing”。仅在重新启动日志记录之后,新值才生效。 | --server-audit-syslog-ident=value | 全局 | 是 | string | mysql-server_auditing | |
server_audit_syslog_info | SYSLOG模式变量。要添加到syslog记录中的'info'字符串。可以随时更改。 | --server-audit-syslog-info=value | 全局 | 是 | string | Empty string | |
server_audit_syslog_priority | SYSLOG模式变量。定义syslogd的日志记录的优先级。 | --server-audit-syslog-priority=value | 全局 | 是 | enum | LOG_INFO | LOG_EMERG,LOG_ALERT,LOG_CRIT,LOG_ERR,LOG_WARNING,LOG_NOTICE,LOG_INFO,LOG_DEBUG |