前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MySQL的审计功能

MySQL的审计功能

作者头像
MySQLSE
发布2020-09-28 15:18:07
2.4K0
发布2020-09-28 15:18:07
举报

安全高效的使用数据库,在现在的IT环境里显得尤为重要,审计功能可以对数据库的操作进行评估,以满足安全生产和法律法规的要求。MySQL的企业版里,提供了一项审计功能——MySQL Enterprise Audit。MySQL的审计功能以插件来实现,支持在特定的MySQL服务器上执行标准审计、基于规则的监视、日志记录以及阻挡连接和查询活动。MySQL Enterprise Audit使用了公开的MySQL Audit API,如果你想使用这个API去自己开发一个审计插件,可以参考手册链接。

当用户安装了该插件后,会产生一个默认名称为audit.log的审计日志,该日志默认为XML格式,也支持JSON格式。日志的内容包括客户端的连接与断开,连接期间执行的操作,以及访问的对象等等。

MySQL Enterprise Audit主要由三部分构成:

一、服务器端由一个名为audit_log的插件对各种事件进行校验,以决定是否将其计入审计日志。

二、一组用户定义的函数(UDF)用于维护过滤器,控制记录行为,加密和读取日志等操作。

三、保存用户数据和过滤器数据的mysql系统表。

MySQL的审计功能使用起来非常简单,DBA启用插件后(插件可以动态启用、禁用),用户连接服务器进行的操作就可以记录到日志,DBA之后可以通过日志来评估审计事件。并且输出的日志格式与Oracle的审计兼容,满足Oracle审计规范。

审计日志支持过滤功能,用户可以根据需求灵活选择需要记录的审计事件。过滤是基于规则,通过用户定义函数(UDF)定义,并将其内容保存在mysql系统表内。过滤审计事件可以通过用户的账户、类、子类以及事件字段的值来实现。

过滤基于规则:

  • 包括/排除审计事件进行记录。
  • 除了记录功能,过滤器还可以阻止事件执行。
  • 定义多个过滤器,并且可以将其分配给任意数量的账户。
  • 可以定义默认的过滤器,为没有分配过滤器的用户使用。

通过使用下列UDF对审计进行操作:

  • audit_log_filter_set_filter():定义一个过滤器
  • audit_log_filter_remove_filter():删除过滤器
  • audit_log_filter_set_user():开始过滤用户帐户
  • audit_log_filter_remove_user():停止过滤用户帐户
  • audit_log_filter_flush():刷新过滤器表的手动更改

过滤器还可以阻挡执行特定事件,例如,对指定的表阻止其插入更新操作。

当执行该语句时,过滤器可以阻挡该操作,并返回“ERROR 1045 (28000): Statement was aborted by an audit log filter”。用户可以灵活利用该特性。

上述内容是关于MySQL企业版审计功能的一个简介,希望能对希望安全使用MySQL的您有所帮助。更为详尽的内容请访问官网手册。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-02-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 MySQL解决方案工程师 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档