千家信息网

AWS RDS Mysql是如何开启数据库审计功能

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,下面一起来了解下AWS RDS Mysql是如何开启数据库审计功能,相信大家看完肯定会受益匪浅,文字在精不在多,希望AWS RDS Mysql是如何开启数据库审计功能这篇短内容是你想要的。由于不同的安
千家信息网最后更新 2026年11月03日AWS RDS Mysql是如何开启数据库审计功能

下面一起来了解下AWS RDS Mysql是如何开启数据库审计功能,相信大家看完肯定会受益匪浅,文字在精不在多,希望AWS RDS Mysql是如何开启数据库审计功能这篇短内容是你想要的。

由于不同的安全需求,数据库审计,也是很多客户关心的话题。针对RDS Mysql,我们能审计每个用户的登录,和操作信息吗?答案是肯定的。

MySQL企业版有此功能,属于收费组件。社区版的Mysql,常见的审计插件就是"MariaDB 审核插件"和Percona审计插件。

1. AWS的RDS Mysql是社区版,审计方式,使用的是"MariaDB 审核插件",使用方法,详见官方文档。本文就不赘述设置方法了。需要注意的是以下参数的设置。

https://docs.amazonaws.cn/AmazonRDS/latest/UserGuide/Appendix.MySQL.Options.AuditPlugin.html

选项设置

有效值

默认值

描述

SERVER_AUDIT_FILE_PATH

/rdsdbdata/log/audit/

/rdsdbdata/log/audit/

日志文件的位置。日志文件包含 SERVER_AUDIT_EVENTS 中指定的活动记录。有关更多信息,请参阅 查看和列出数据库日志文件 和 MySQL 数据库日志文件。

SERVER_AUDIT_FILE_ROTATE_SIZE

1-1000000000

1000000

达到该字节大小时,会导致文件轮换。有关更多信息,请参阅 日志文件大小。

SERVER_AUDIT_FILE_ROTATIONS

0-100

9

要保存的日志轮换数量。有关更多信息,请参阅 日志文件大小 和 下载数据库日志文件。

SERVER_AUDIT_EVENTS

CONNECT、QUERY

CONNECT、QUERY

要在日志中记录的活动类型。安装 MariaDB 审核插件可自行登录。

CONNECT:记录成功和失败的数据库连接以及数据库断开连接。

QUERY:记录针对数据库运行的所有查询文本。

TABLE:记录针对数据库运行查询时受查询影响的表。

对于 MariaDB,支持 CONNECT、QUERY 和 TABLE。

对于 MySQL,支持 CONNECT 和 QUERY。

SERVER_AUDIT_INCL_USERS

多个逗号分隔值

无

仅包括指定用户的活动。默认情况下,会记录所有用户的活动。如果 SERVER_AUDIT_EXCL_USERS 和 SERVER_AUDIT_INCL_USERS 中均指定了某位用户,则会记录该用户的活动。

SERVER_AUDIT_EXCL_USERS

多个逗号分隔值

无

排除指定用户的活动。默认情况下,会记录所有用户的活动。如果 SERVER_AUDIT_EXCL_USERS 和 SERVER_AUDIT_INCL_USERS 中均指定了某位用户,则会记录该用户的活动。

rdsadmin 用户会每秒查询一次数据库,以检查数据库的运行状况。根据您的其他设置,此活动可能导致您的日志文件大小非常快速地增长。如果您不需要记录此活动,请将 rdsadmin 用户添加到 SERVER_AUDIT_EXCL_USERS 列表。

注意

会始终为所有用户记录 CONNECT 活动,即使是该选项设置指定的用户。

SERVER_AUDIT_LOGGING

ON

ON

日志记录处于活动状态。唯一有效的值为 ON。Amazon RDS 不支持停用日志记录。如果您要停用日志记录,请删除 MariaDB 审核插件。有关更多信息,请参阅 删除 MariaDB 审核插件。

2. 开启审计功能后,我们就可以在console中看到audit log了。

3. 下面,我们看一下,audit log到底记录了什么信息。

3.1. 我前台操作的记录如下:

3.1.1 使用管理员用户,登录数据库

# mysql -hmysql-rds.cq7qaukj3smd.rds.cn-northwest-1.amazonaws.com.cn -uadmin -pxxxxx

3.1.2 创建用户test2,并赋予一些全新

mysql>  GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, PROCESS, REFERENCES, INDEX, ALTER, SHOW DATABASES, CREATE TEMPORARY TABLES ON *.* TO 'test2'@'ec2-52-80-168-237.cn-north-1.compute.amazonaws.com.cn'  identified by 'xxxxx' WITH GRANT OPTION;Query OK, 0 rows affected, 1 warning (0.02 sec)

3.1.3 使用新建的用户连接数据库

# mysql -hmysql-rds.cq7qaukj3smd.rds.cn-northwest-1.amazonaws.com.cn -utest2 -pxxxxx

3.1.4 执行数据库切换,创建表等命令

mysql> use tests;mysql> create table xx  as select * from liang;mysql> commit;  -----注释:create 是DDL语句,默认提交,所以这里commit没有意义。

3.2 audit log如下,可以看到以下几点信息

3.2.1. 谁访问和执行的,来至于哪里?

 --test2,ec2-52-80-168-237.cn-north-1.compute.amazonaws.com.cn

3.2.2. 执行的全部操作信息记录

20190726 15:10:01,ip-10-4-2-104,admin,ec2-52-80-168-237.cn-north-1.compute.amazonaws.com.cn,13,883,QUERY,,'GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, PROCESS, REFERENCES, INDEX, ALTER, SHOW DATABASES, CREATE TEMPORARY TABLES ON *.* TO \'test2\'@\'ec2-52-80-168-237.cn-north-1.compute.amazonaws.com.cn\' IDENTIFIED WITH \'mysql_native_password\' AS \'*01A6717B58FF5C7EAFFF6CB7C96F7428EA65FE4C\' WITH GRANT OPTION',020190726 15:10:03,ip-10-4-2-104,admin,ec2-52-80-168-237.cn-north-1.compute.amazonaws.com.cn,13,0,DISCONNECT,,,0......20190726 15:10:10,ip-10-4-2-104,test2,ec2-52-80-168-237.cn-north-1.compute.amazonaws.com.cn,14,0,CONNECT,,,020190726 15:10:10,ip-10-4-2-104,test2,ec2-52-80-168-237.cn-north-1.compute.amazonaws.com.cn,14,893,QUERY,,'select @@version_comment limit 1',020190726 15:10:19,ip-10-4-2-104,test2,ec2-52-80-168-237.cn-north-1.compute.amazonaws.com.cn,14,894,QUERY,,'SELECT DATABASE()',020190726 15:10:19,ip-10-4-2-104,test2,ec2-52-80-168-237.cn-north-1.compute.amazonaws.com.cn,14,896,QUERY,tests,'show databases',020190726 15:10:19,ip-10-4-2-104,test2,ec2-52-80-168-237.cn-north-1.compute.amazonaws.com.cn,14,897,QUERY,tests,'show tables',020190726 15:10:31,ip-10-4-2-104,test2,ec2-52-80-168-237.cn-north-1.compute.amazonaws.com.cn,14,913,QUERY,tests,'create table as select * from liang',1064......20190726 15:10:39,ip-10-4-2-104,test2,ec2-52-80-168-237.cn-north-1.compute.amazonaws.com.cn,14,922,QUERY,tests,'create table xx  as select * from liang',020190726 15:10:43,ip-10-4-2-104,test2,ec2-52-80-168-237.cn-north-1.compute.amazonaws.com.cn,14,923,QUERY,tests,'commit',0

4. 当然审计日志会记录数据库的全部操作,自然也就有一些我们不需要的信息参杂其中。例如RDS后台操作用户rdsadmin的全部操作记录。

突然意识到,audit log,也可以用来研究AWS RDS后面实现的一些自动化运维的原理。

20190726 15:10:20,ip-10-4-2-104,rdsadmin,localhost,2,900,QUERY,,'SELECT 1',020190726 15:10:20,ip-10-4-2-104,rdsadmin,localhost,2,901,QUERY,,'SELECT 1',020190726 15:10:20,ip-10-4-2-104,rdsadmin,localhost,2,902,QUERY,,'SELECT 1',020190726 15:10:20,ip-10-4-2-104,rdsadmin,localhost,2,903,QUERY,,'SELECT count(*) from information_schema.TABLES WHERE TABLE_SCHEMA = \'mysql\' AND TABLE_NAME = \'rds_heartbeat2\'',020190726 15:10:20,ip-10-4-2-104,rdsadmin,localhost,2,904,QUERY,,'SELECT 1',020190726 15:10:20,ip-10-4-2-104,rdsadmin,localhost,2,905,QUERY,,'SELECT value FROM mysql.rds_heartbeat2',020190726 15:10:20,ip-10-4-2-104,rdsadmin,localhost,2,906,QUERY,,'SELECT 1',020190726 15:10:20,ip-10-4-2-104,rdsadmin,localhost,2,907,QUERY,,'SELECT @@GLOBAL.read_only',020190726 15:10:25,ip-10-4-2-104,rdsadmin,localhost,2,908,QUERY,,'SELECT 1',020190726 15:10:25,ip-10-4-2-104,rdsadmin,localhost,2,909,QUERY,,'SELECT NAME, VALUE FROM mysql.rds_configuration',020190726 15:10:25,ip-10-4-2-104,rdsadmin,localhost,2,910,QUERY,,'SELECT 1',020190726 15:10:25,ip-10-4-2-104,rdsadmin,localhost,2,911,QUERY,,'SELECT @@session.transaction_read_only',020190726 15:10:25,ip-10-4-2-104,rdsadmin,localhost,2,912,QUERY,,'PURGE BINARY LOGS TO \'mysql-bin-changelog.008941\'',0

5. 但是真的rdsadmin的操作信息,是不需要做审计的。我们可以考虑不记录rdsadmin用户的审计信息,只需修改"选项组"的参数SERVER_AUDIT_EXCL_USERS=rdsadmin即可

5.1 关闭之后的audit log输出:

20190727 14:24:54,ip-10-4-0-205,rdsadmin,localhost,19,0,CONNECT,,,020190727 14:24:54,ip-10-4-0-205,rdsadmin,localhost,19,0,DISCONNECT,,,0

---正常情况下,rdsadmin 用户会每秒查询一次数据库,以检查数据库的运行状况。不记录rdsadmin的信息之后,世界立即清净了许多

20190727 14:25:04,ip-10-4-0-205,admin,ec2-52-80-168-237.cn-north-1.compute.amazonaws.com.cn,18,2689,QUERY,,'create database user',020190727 14:25:06,ip-10-4-0-205,admin,ec2-52-80-168-237.cn-north-1.compute.amazonaws.com.cn,18,2690,QUERY,,'SELECT DATABASE()',020190727 14:25:06,ip-10-4-0-205,admin,ec2-52-80-168-237.cn-north-1.compute.amazonaws.com.cn,18,2692,QUERY,user,'show databases',020190727 14:25:06,ip-10-4-0-205,admin,ec2-52-80-168-237.cn-north-1.compute.amazonaws.com.cn,18,2693,QUERY,user,'show tables',020190727 14:25:26,ip-10-4-0-205,admin,ec2-52-80-168-237.cn-north-1.compute.amazonaws.com.cn,18,2715,QUERY,user,'create table xx (id int)',020190727 14:25:29,ip-10-4-0-205,admin,ec2-52-80-168-237.cn-north-1.compute.amazonaws.com.cn,18,2716,QUERY,user,'commit',0

6. 针对数据库的审计,加密等操作,在增加安全性的同时,也要付出性能损耗的成本。

下文是AWS官方blog,其中讨论到RDS Mysql在开启审计之后,还是有比较大的性能损耗的。

https://aws.amazon.com/cn/blogs/china/cloudwatch-logs-kinesis-firehose-athena-quicksight-amazon-aurora/?nc1=b_rp

7. 开启audit之后,会有大量的audit log产生,但是RDS的日志会滚动删除,不能长久的保存。如果为了长时间审计的需求,将audit保存下来,还可以做更多的统计和分析。

通过RDS的Modify页面,将audit log输出到cloudwatch。

至此,RDS Mysql数据库审计功能如何使用已经了解了。后续,我会继续分享,如何利用audit作为数据源。

通过数据处理,汇总到数据集/湖 中,以进一步分析使用。

看完AWS RDS Mysql是如何开启数据库审计功能这篇文章后,很多读者朋友肯定会想要了解更多的相关内容,如需获取更多的行业信息,可以关注我们的行业资讯栏目。

数据 数据库 用户 审计 日志 信息 活动 文件 插件 更多 功能 查询 大小 有关 运行 情况 支持 登录 肯定 有效 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 云之行互联网科技 中关村互联网科技集团 深圳互联网络科技有限公司 有马互联网科技 美国互联网黑科技 科技互联网创业计划书 四川狮子座互联网科技 互联网科技有限公司 翻译 联恩商钥互联网科技有限公司 栖莱科技互联网股份有限公司 宁夏科技产业互联网案例 河南猎农互联网科技有限公司 深圳市优智互联网科技有限公司 中国科技创新与世界互联网大会 河南住房之家互联网科技 西安小鹰速贷互联网科技有限公司 中科明德北京互联网科技 皮皮虾互联网科技有限公司 云南互联网科技学费 三亚科技创新互联网基地 科技制造互联网公司 互联网科技的发展 壹账通互联网科技 互联网金融科技委员会 互联网科技公司营业执照怎么办理 宇信科技在杭州互联网排第几 广州梦谷互联网科技有限公司领导 互联网科技手抄报图片 科技和互联网行业的特点 互联网企业和网络科技有限公司
0