MySQL安全部署指南/正在安装MySQL企业审计

第7章安装MySQL企业审计

MySQL企业审计支持对连接和查询活动进行标准的、基于策略的监视和日志记录,为受内部和外部监管指南控制的应用程序提供审计和遵从性解决方案。

当安装时,审计插件使MySQL服务器产生一个日志文件,其中包含服务器活动的审计记录。日志内容包括客户机连接和断开连接的时间,以及在连接时执行的操作,例如访问的数据库和表。

安装插件后,它会写入一个审计日志文件。缺省情况下,文件是命名的audit.log并且位于数据目录中。

安装MySQL企业审计:

  1. 运行audit_log_filter_linux_install.sql位于分享MySQL安装目录。

    Shell > CD /usr/local/mysql Shell > bin/mysql -u root -p < /usr/local/mysql/share/audit_log_filter_linux_install. shsql输入密码:(此处输入root密码)结果好
  2. 通过以root身份登录并检查插件安装INFORMATION_SCHEMA。插件表或使用显示插件声明。

    shell> cd /usr/local/mysql shell> bin/mysqladmin -u root -p version Enter password:(此处输入root密码)
    mysql> SELECT PLUGIN_NAME, PLUGIN_STATUS FROM INFORMATION_SCHEMA。PLUGIN_NAME为'audit%'的插件;+-------------+---------------+ | PLUGIN_NAME | PLUGIN_STATUS  | +-------------+---------------+ | audit_log |活跃  | +-------------+---------------+
  3. 若要防止插件在运行时被删除,请添加——审计日志以下选项(mysqld)选项组在MySQL配置文件(/etc/my.cnf),设置为FORCE_PLUS_PERMANENT

    审计日志= FORCE_PLUS_PERMANENT
  4. 重新启动服务器以应用配置更改:

    Shell > systemctl restart mysqld
  5. 缺省情况下,基于规则的审计日志过滤不记录任何用户的可审计事件。要使用基于规则的过滤产生日志-一切行为,创建一个简单的过滤器来启用日志记录,并将其分配给默认帐户:

    mysql> SELECT audit_log_filter_set_filter('log_all', '{"filter": {"log": true}}');+-------------------------------------------------------------------------+ | audit_log_filter_set_filter(“log_all”、“{“过滤器”:{“日志”:真的  } }') | +-------------------------------------------------------------------------+ | 好吧  | +-------------------------------------------------------------------------+ mysql >选择audit_log_filter_set_user(“%”、“log_all”);+-------------------------------------------------------------------------+ | audit_log_filter_set_filter(“log_all”、“{“过滤器”:{“日志”:真的  } }') | +-------------------------------------------------------------------------+ | 好吧  | +-------------------------------------------------------------------------+

    分配给的过滤器用于来自没有显式分配筛选器的任何帐户的连接(最初对所有帐户都是如此)。

  6. 要验证事件是否被记录,发出如下语句显示数据库并检查audit.log日志事件的文件内容。

    shell> cd /usr/local/mysql shell> bin/mysqladmin -u root -p version Enter password:(此处输入root密码)
    mysql >显示数据库;+--------------------+ | 数据库  | +--------------------+ | mysql information_schema | | | | performance_schema | |系统  | +--------------------+

    显示数据库声明中运行root@localhost将日志事件写入audit.log类似如下:

     2017-05-15T16:08:46 UTC 24683_2017-05-12T23:08:52 Query 25 0 0 root[root] @ localhost []  localhost  show_databases SHOW DATABASES 
请注意

审计日志文件的内容可能包含敏感信息,如SQL语句的文本。出于安全考虑,应该将该文件写入只有MySQL服务器和有合法理由查看日志的用户才能访问的目录。默认的审计日志文件名为audit.log并且位于数据目录中。在此部署中,数据目录由mysql用户。方法可以在服务器启动时更改审计日志文件的此位置audit_log_file系统变量。

还可以选择对审计日志文件进行加密。加密基于用户定义的密码。要使用这个特性,必须启用MySQL密匙环,因为审计日志记录使用它来存储密码。有关更多信息,请参见加密审计日志文件

有关配置MySQL企业审计的更多信息,请参见MySQL企业审计


本手册下载
PDF (Ltr)- 190.1 kb
PDF (A4)- 191.3 kb