添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

Azure Database for MySQL 单一服务器即将停用。 强烈建议升级到 Azure Database for MySQL 灵活服务器。 有关迁移到 Azure Database for MySQL 灵活服务器的详细信息,请参阅 Azure Database for MySQL 单一服务器的最新动态

在 Azure Database for MySQL 中,审核日志可供用户使用。 审核日志可以用来跟踪数据库级别的活动,通常用于确保符合性。

配置审核日志记录

建议仅记录审核所需的事件类型和用户,以确保服务器的性能不会受到严重影响并收集最少的数据量。

默认情况下,审核日志被禁用。 若要启用它,请将 audit_log_enabled 设置为 ON。

可以调整的其他参数包括:

  • audit_log_events :控制要记录的事件。 请查看下表以了解具体的审核事件。
  • audit_log_include_users :要包括 MySQL 用户进行日志记录。 此参数的默认值为空,这将包括所有用户进行日志记录。 此参数的优先级高于 audit_log_exclude_users 。 此参数的最大长度为 512 个字符。
  • audit_log_exclude_users :不对 MySQL 用户进行日志记录。 此参数的最大长度为 512 个字符。
  • audit_log_include_users 的优先级高于 audit_log_exclude_users 。 例如,如果 audit_log_include_users = demouser 并且 audit_log_exclude_users = demouser ,则会将该用户包括在审核日志中,因为 audit_log_include_users 的优先级更高。

    访问审核日志

    审核日志与 Azure Monitor 诊断日志集成。 在 MySQL 服务器上启用审核日志后,可以将它们发送到 Azure Monitor 日志、事件中心或 Azure 存储。 若要详细了解如何在 Azure 门户中启用诊断日志,请参阅 审核日志门户文章

    如果你通过诊断和设置将日志发送给 Azure 存储,将不支持高级存储帐户

    诊断日志架构

    以下部分介绍基于事件类型的 MySQL 审核日志的输出是什么。 根据输出方法,包含的字段以及这些字段出现的顺序可能会有所不同。

    分析 Azure Monitor 日志中的日志

    将审核日志通过诊断日志以管道方式传送到 Azure Monitor 日志后,便可以对审核事件进行进一步分析。 下面是一些可帮助你入门的示例查询。 请确保使用你的服务器名称更新下面的内容。

  • 列出特定服务器上的 GENERAL 事件

    AzureDiagnostics
    | where LogicalServerName_s == '<your server name>'
    | where Category == 'MySqlAuditLogs' and event_class_s == "general_log"
    | project TimeGenerated, LogicalServerName_s, event_class_s, event_subclass_s, event_time_t, user_s , ip_s , sql_text_s 
    | order by TimeGenerated asc nulls last 
    
  • 列出特定服务器上的 CONNECTION 事件

    AzureDiagnostics
    | where LogicalServerName_s == '<your server name>'
    | where Category == 'MySqlAuditLogs' and event_class_s == "connection_log"
    | project TimeGenerated, LogicalServerName_s, event_class_s, event_subclass_s, event_time_t, user_s , ip_s , sql_text_s 
    | order by TimeGenerated asc nulls last
    
  • 汇总特定服务器上的已审核事件

    AzureDiagnostics
    | where LogicalServerName_s == '<your server name>'
    | where Category == 'MySqlAuditLogs'
    | project TimeGenerated, LogicalServerName_s, 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, user_s, ip_s
    
  • 绘制特定服务器上的审核事件类型分布图

    AzureDiagnostics
    | where LogicalServerName_s == '<your server name>'
    | where Category == 'MySqlAuditLogs'
    | project TimeGenerated, LogicalServerName_s, event_class_s, event_subclass_s, event_time_t, user_s , ip_s , sql_text_s 
    | summarize count() by LogicalServerName_s, bin(TimeGenerated, 5m)
    | render timechart 
    
  • 列出已为审核日志启用诊断日志的所有 MySQL 服务器上的已审核事件

    AzureDiagnostics
    | where Category == 'MySqlAuditLogs'
    | project TimeGenerated, LogicalServerName_s, event_class_s, event_subclass_s, event_time_t, user_s , ip_s , sql_text_s 
    | order by TimeGenerated asc nulls last
    
  • 如何在 Azure 门户中配置审核日志
  •