MySQL 8.0.35 企业版开启审计audit log功能

打印 上一主题 下一主题

主题 847|帖子 847|积分 2541



一、系统环境和要求

在MySQL中,开启日志审计可以记录数据库的操作日志,包括修改、删除、插入等操作。这对于追踪和分析数据库的使用情况以及排查潜伏的安全问题非常有帮助。本文将具体先容如何开启MySQL的日志审计功能。
留意:企业版审计插件的audit_log.so是自带的,不必要单独下载,安装即可。
   操作系统:Ubuntu 20.04.5 LTS
  数据库版本:8.0.35-commercial MySQL Enterprise Server - Commercial
  TDE插件范例:keyring_encrypted_file
  二、安装审计插件

  1. -- 确认审计插件是否已安装并启用
  2. SELECT * FROM information_schema.PLUGINS WHERE PLUGIN_NAME LIKE '%audit%';
  3. -- 如果未启用,启用审计插件
  4. INSTALL PLUGIN audit_log SONAME 'audit_log.so';
复制代码
下面是审计插件安装成功
  1. SELECT * FROM information_schema.PLUGINS WHERE PLUGIN_NAME LIKE '%audit%';
复制代码
  1. mysql> SHOW PLUGINS;
  2. +----------------------------------+----------+--------------------+---------------------------+-------------+
  3. | Name                             | Status   | Type               | Library                   | License     |
  4. +----------------------------------+----------+--------------------+---------------------------+-------------+
  5. | keyring_encrypted_file           | ACTIVE   | KEYRING            | keyring_encrypted_file.so | PROPRIETARY |
  6. | binlog                           | ACTIVE   | STORAGE ENGINE     | NULL                      | PROPRIETARY |
  7. | mysql_native_password            | ACTIVE   | AUTHENTICATION     | NULL                      | PROPRIETARY |
  8. | sha256_password                  | ACTIVE   | AUTHENTICATION     | NULL                      | PROPRIETARY |
  9. | caching_sha2_password            | ACTIVE   | AUTHENTICATION     | NULL                      | PROPRIETARY |
  10. | sha2_cache_cleaner               | ACTIVE   | AUDIT              | NULL                      | PROPRIETARY |
  11. | daemon_keyring_proxy_plugin      | ACTIVE   | DAEMON             | NULL                      | PROPRIETARY |
  12. | CSV                              | ACTIVE   | STORAGE ENGINE     | NULL                      | PROPRIETARY |
  13. | MEMORY                           | ACTIVE   | STORAGE ENGINE     | NULL                      | PROPRIETARY |
  14. | InnoDB                           | ACTIVE   | STORAGE ENGINE     | NULL                      | PROPRIETARY |
  15. | INNODB_TRX                       | ACTIVE   | INFORMATION SCHEMA | NULL                      | PROPRIETARY |
  16. | INNODB_CMP                       | ACTIVE   | INFORMATION SCHEMA | NULL                      | PROPRIETARY |
  17. | INNODB_CMP_RESET                 | ACTIVE   | INFORMATION SCHEMA | NULL                      | PROPRIETARY |
  18. | INNODB_CMPMEM                    | ACTIVE   | INFORMATION SCHEMA | NULL                      | PROPRIETARY |
  19. | INNODB_CMPMEM_RESET              | ACTIVE   | INFORMATION SCHEMA | NULL                      | PROPRIETARY |
  20. | INNODB_CMP_PER_INDEX             | ACTIVE   | INFORMATION SCHEMA | NULL                      | PROPRIETARY |
  21. | INNODB_CMP_PER_INDEX_RESET       | ACTIVE   | INFORMATION SCHEMA | NULL                      | PROPRIETARY |
  22. | INNODB_BUFFER_PAGE               | ACTIVE   | INFORMATION SCHEMA | NULL                      | PROPRIETARY |
  23. | INNODB_BUFFER_PAGE_LRU           | ACTIVE   | INFORMATION SCHEMA | NULL                      | PROPRIETARY |
  24. | INNODB_BUFFER_POOL_STATS         | ACTIVE   | INFORMATION SCHEMA | NULL                      | PROPRIETARY |
  25. | INNODB_TEMP_TABLE_INFO           | ACTIVE   | INFORMATION SCHEMA | NULL                      | PROPRIETARY |
  26. | INNODB_METRICS                   | ACTIVE   | INFORMATION SCHEMA | NULL                      | PROPRIETARY |
  27. | INNODB_FT_DEFAULT_STOPWORD       | ACTIVE   | INFORMATION SCHEMA | NULL                      | PROPRIETARY |
  28. | INNODB_FT_DELETED                | ACTIVE   | INFORMATION SCHEMA | NULL                      | PROPRIETARY |
  29. | INNODB_FT_BEING_DELETED          | ACTIVE   | INFORMATION SCHEMA | NULL                      | PROPRIETARY |
  30. | INNODB_FT_CONFIG                 | ACTIVE   | INFORMATION SCHEMA | NULL                      | PROPRIETARY |
  31. | INNODB_FT_INDEX_CACHE            | ACTIVE   | INFORMATION SCHEMA | NULL                      | PROPRIETARY |
  32. | INNODB_FT_INDEX_TABLE            | ACTIVE   | INFORMATION SCHEMA | NULL                      | PROPRIETARY |
  33. | INNODB_TABLES                    | ACTIVE   | INFORMATION SCHEMA | NULL                      | PROPRIETARY |
  34. | INNODB_TABLESTATS                | ACTIVE   | INFORMATION SCHEMA | NULL                      | PROPRIETARY |
  35. | INNODB_INDEXES                   | ACTIVE   | INFORMATION SCHEMA | NULL                      | PROPRIETARY |
  36. | INNODB_TABLESPACES               | ACTIVE   | INFORMATION SCHEMA | NULL                      | PROPRIETARY |
  37. | INNODB_COLUMNS                   | ACTIVE   | INFORMATION SCHEMA | NULL                      | PROPRIETARY |
  38. | INNODB_VIRTUAL                   | ACTIVE   | INFORMATION SCHEMA | NULL                      | PROPRIETARY |
  39. | INNODB_CACHED_INDEXES            | ACTIVE   | INFORMATION SCHEMA | NULL                      | PROPRIETARY |
  40. | INNODB_SESSION_TEMP_TABLESPACES  | ACTIVE   | INFORMATION SCHEMA | NULL                      | PROPRIETARY |
  41. | MyISAM                           | ACTIVE   | STORAGE ENGINE     | NULL                      | PROPRIETARY |
  42. | MRG_MYISAM                       | ACTIVE   | STORAGE ENGINE     | NULL                      | PROPRIETARY |
  43. | PERFORMANCE_SCHEMA               | ACTIVE   | STORAGE ENGINE     | NULL                      | PROPRIETARY |
  44. | TempTable                        | ACTIVE   | STORAGE ENGINE     | NULL                      | PROPRIETARY |
  45. | ARCHIVE                          | ACTIVE   | STORAGE ENGINE     | NULL                      | PROPRIETARY |
  46. | BLACKHOLE                        | ACTIVE   | STORAGE ENGINE     | NULL                      | PROPRIETARY |
  47. | FEDERATED                        | DISABLED | STORAGE ENGINE     | NULL                      | PROPRIETARY |
  48. | ndbcluster                       | DISABLED | STORAGE ENGINE     | NULL                      | PROPRIETARY |
  49. | ndbinfo                          | DISABLED | STORAGE ENGINE     | NULL                      | PROPRIETARY |
  50. | ndb_transid_mysql_connection_map | DISABLED | INFORMATION SCHEMA | NULL                      | PROPRIETARY |
  51. | ngram                            | ACTIVE   | FTPARSER           | NULL                      | PROPRIETARY |
  52. | mysqlx_cache_cleaner             | ACTIVE   | AUDIT              | NULL                      | PROPRIETARY |
  53. | mysqlx                           | ACTIVE   | DAEMON             | NULL                      | PROPRIETARY |
  54. | audit_log                        | ACTIVE   | AUDIT              | audit_log.so              | PROPRIETARY |
  55. | keyring_file                     | ACTIVE   | KEYRING            | keyring_file.so           | PROPRIETARY |
  56. | keyring_udf                      | ACTIVE   | DAEMON             | keyring_udf.so            | PROPRIETARY |
  57. +----------------------------------+----------+--------------------+---------------------------+-------------+
  58. 52 rows in set (0.00 sec)
  59. mysql>
复制代码
二、修改配置文件

编辑MySQL的配置文件my.cnf,在文件中添加以下内容
  1. # Audit function
  2. audit_log = ON
  3. audit_log_format = JSON
  4. audit_log_policy = ALL
  5. audit_log_file = /var/log/mysql/audit.log
复制代码
这些配置项的含义如下:
   audit_log:设置为ON表示开启审计日志记录。
audit_log_format:指定审计日志的格式,这里我们选择了JSON格式。
audit_log_policy:指定审计策略,这里我们选择了ALL,表示记录全部操作。
audit_log_file:指定日志文件的路径和文件名,这里我们将日志写入到 audit.log 文件中。
  
  此中 audit_log_policy 的取值有:
  ·ALL - all events will be logged
·LOGINS - only logins will be logged
·QUERIES - only queries will be logged
·NONE - no events will be logged
  
修改完成后,生存并关闭文件。
查看audit干系参数
  1. show global variables like 'audit%';
复制代码
 

四、审计日志分析

开启审计功能后,全部的数据库访问和操作都会被记录在审计日志中。审计日志以JSON格式存储,我们可以通过分析JSON数据来了解数据库的使用情况。从上面的示例中,我们可以获取到以下信息:
  1. tail -n 1 /var/log/mysql/audit.log
复制代码
 如果操作被成功审计,你将会看到类似以下的日志记录:
  1. {
  2.   "timestamp": "2024-03-26 08:57:33",
  3.   "id": 8,
  4.   "class": "general",
  5.   "event": "status",
  6.   "connection_id": 11,
  7.   "account": {
  8.     "user": "root",
  9.     "host": ""
  10.   },
  11.   "login": {
  12.     "user": "root",
  13.     "os": "",
  14.     "ip": "10.115.20.71",
  15.     "proxy": ""
  16.   },
  17.   "general_data": {
  18.     "command": "Query",
  19.     "sql_command": "show_keys",
  20.     "query": "SHOW INDEX FROM `sys`.`audit_log`",
  21.     "status": 0
  22.   }
  23. }
复制代码



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

傲渊山岳

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表