教程:使用 Azure Database for MySQL 灵活服务器配置审核日志

适用于:Azure Database for MySQL - 灵活服务器

可以使用 Azure Database for MySQL 灵活服务器配置审核日志。 审核日志可用于跟踪数据库级活动,包括连接、管理、数据定义语言 (DDL) 和数据操作语言 (DML) 事件。 这些类型的日志通常用于符合性目的。 数据库审核通常用于执行以下操作:

  • 解释发生在特定架构、表或行中或影响特定内容的所有操作。
  • 根据用户(或其他人)的责任,防止其执行不适当的操作。
  • 调查可疑活动。
  • 监视和收集有关特定数据库活动的数据。

本文介绍如何使用 MySQL 审核日志、Log Analytics 工具或工作簿模板来可视化 Azure Database for MySQL 灵活服务器的审核信息。

本教程介绍以下操作:

  • 使用 Azure 门户或 Azure CLI 配置审核
  • 设置诊断
  • 使用 Log Analytics 查看审核日志
  • 使用工作簿查看审核日志

先决条件

使用 Azure 门户配置审核

  1. 登录 Azure 门户

  2. 选择灵活服务器实例。

  3. 在左侧窗格的“设置”下,选择“服务器参数” 。

    显示“服务器参数”列表的屏幕截图。

  4. 对于 audit_log_enabled 参数,选择“启用” 。

    显示“audit_log_enabled”参数切换为“启用”的屏幕截图。

  5. 对于 audit_log_events 参数,在下拉列表中选择要记录的事件类型

    “audit_log_events”下拉列表中的事件选项的屏幕截图。

  6. 对于 audit_log_exclude_users 和 audit_log_include_users 参数,通过提供 MySQL 用户名来指定要在日志记录中包含或排除的任何 MySQL 用户 。

    显示要在日志记录中包含或排除的 MySQL 用户名的屏幕截图。

  7. 选择“保存”。

    用于保存参数值更改的“保存”按钮的屏幕截图。

使用 Azure CLI 配置审核

或者,可以通过运行以下命令,从 Azure CLI 为灵活服务器启用和配置审核:

# Enable audit logs
az mysql flexible-server parameter set \
--name audit_log_enabled \
--resource-group myresourcegroup \
--server-name mydemoserver \
--value ON

设置诊断

审核日志与 Azure Monitor 诊断设置集成后,你便可以通过管道将日志发送到以下任何数据接收器中:

  • Log Analytics 工作区
  • 事件中心
  • 一个存储帐户

注意

应在配置诊断设置之前创建数据接收器。 可以访问已配置的数据接收器中的审核日志。 最多需要等待 10 分钟的时间,这些日志就会出现。

  1. 在左窗格中的“监视”下,选择“诊断设置”。

  2. 在“诊断设置”窗格上,选择“添加诊断设置” 。

    “诊断设置”窗格上的“添加诊断设置”链接的屏幕截图。

  3. 在“名称”框中,为诊断设置输入一个名称。

    用于选择配置选项的“诊断设置”窗格的屏幕截图。

  4. 通过选择相应的复选框,指定要将审核日志发送到的目标(Log Analytics 工作区、事件中心或存储帐户)。

    注意

    在本教程中,你将需要将审核日志发送到 Log Analytics 工作区。

  5. 在“日志”下,对于日志类型,选择“MySqlAuditLogs”复选框 。

  6. 配置通过管道将审核日志发送到的数据接收器后,选择“保存”。

使用 Log Analytics 查看审核日志

  1. 在 Log Analytics 的左侧窗格中,在“监视”下,选择“日志” 。

  2. 关闭“查询”窗口。

    Log Analytics“查询”窗格的屏幕截图。

  3. 在查询窗口中,可写入要执行的查询。 例如,若要在特定服务器上查找已审核事件的摘要,需使用以下查询:

    AzureDiagnostics
        |where Category =='MySqlAuditLogs' 
        |project TimeGenerated, Resource, event_class_s, event_subclass_s, event_time_t, user_s ,ip_s , sql_text_s 
        |summarize count() by event_class_s,event_subclass_s 
        |order by event_class_s 
    

    屏幕截图显示一个示例 Log Analytics 查询,用于在特定服务器上查找已审核事件的摘要。

使用工作簿查看审核日志

用于审核的工作簿模板需要你创建诊断设置以发送平台日志。

  1. 在 Azure Monitor 中选择左侧窗格上的“活动日志”,然后选择“导出活动日志”。

     Azure Monitor“活动日志”窗格中“诊断设置”选项卡的屏幕截图。

  2. 在“诊断设置”窗格中,可添加新设置或编辑现有设置。 每个设置只能包含一种目标类型。

    用于选择日志目标的 Azure Monitor“诊断设置”窗格的屏幕截图。

    注意

    可在已配置的数据接收器(Log Analytics 工作区、存储帐户或事件中心)中访问慢查询日志。 最多需要等待 10 分钟的时间,这些日志就会出现。

  3. 在 Azure 门户的左侧窗格中,在“监视”下,为 Azure Database for MySQL 灵活服务器实例选择“工作簿”

  4. 选择“审核”工作簿。

    显示工作簿库中所有工作簿的屏幕截图。

在工作簿中,可以查看以下可视化效果:

  • 对服务执行的管理操作
  • 审核摘要
  • 审核连接事件摘要
  • 审核连接事件
  • 表访问摘要
  • 已识别的错误

工作簿模板“服务上的管理操作”的屏幕截图。

工作簿模板“审核连接事件”的屏幕截图。

注意

  • 还可以编辑这些模板,并根据要求对其进行自定义。 有关详细信息,请参阅 Azure 工作簿的“编辑模式”部分。
  • 若想快速查看,还可将工作簿或 Log Analytics 查询固定到仪表板。 有关详细信息,请参阅在 Azure 门户中创建仪表板

“服务上的管理操作”可提供针对服务执行的活动的详细信息。 它有助于确定对订阅中的资源执行任何写入操作(PUT、POST、DELETE)的内容、人员和时间。

可以使用其他可视化效果来帮助了解数据库活动的详细信息。 数据库安全包含四个部分:

  • 服务器安全:负责防止未经授权的人员访问数据库。
  • 数据库连接:管理员应检查是否已由授权人员执行任何数据库更新。
  • 表访问控制:显示授权用户的访问密钥,以及每个用户有权处理的数据库中的表。
  • 数据库访问限制:对于已将数据库上传到 Internet 的用户尤其重要,有助于防止外部源访问数据库。

后续步骤