applies to:Azure SQL Database
Azure Synapse Analytics
Azure SQL Database 和 Azure Synapse Analytics跟踪数据库事件,并将这些事件写入到您的 Azure 存储帐户、Log Analytics 工作区或事件中心的审核日志中。
审核还可:
帮助保持合规性、了解数据库活动,以及深入了解可以指明业务考量因素或疑似安全违规的偏差和异常。
实现并促进遵从合规标准,但不能保证合规性。 有关详细信息,请参阅 Azure 信任中心,可在其中找到最新的 SQL 数据库符合性认证列表。
注意
有关 Azure SQL 托管实例审核的信息,请参阅 开始使用 Azure SQL 托管实例审核。
概述
可使用 SQL 数据库审核来:
- 保留选定事件的审核日志。 可以定义要审核的数据库操作的类别。
- 报告 数据库活动。 可以使用预配置的报告和仪表板快速开始使用活动和事件报告。
- 分析报告。 可以查找可疑事件、异常活动和趋势。
重要
针对Azure SQL Database、Azure Synapse Analytics SQL 池和Azure SQL Managed Instance的审核针对正在审核的数据库或实例的可用性和性能进行了优化。 在活动非常频繁或网络负载非常高的时期,审计功能可能允许事务继续进行,而不记录所有标记为审核的事件。
针对 Azure SQL Database 的服务器审核中的性能、可用性和可靠性的增强功能(2025 年 7 月正式发布)
- 重新构建了 SQL 审核的主要部分,从而提高了服务器审核的可用性和可靠性。 额外的好处是功能与SQL Server和Azure SQL Managed Instance的对齐更紧密。 数据库审核保持不变。
- 以前的审核设计会触发数据库级审核,并为服务器中的每个数据库执行一个审核会话。 新的审核体系结构在服务器级别创建一个扩展事件会话,用于捕获所有数据库的审核事件。
- 新的审核设计优化了内存和 CPU,与审核在SQL Server和Azure SQL Managed Instance的工作方式一致。
重构服务器审核体系结构引发的变更
- 存储帐户的文件夹结构更改:
- 其中一项主要更改涉及存储帐户容器中存储的审核日志的文件夹结构更改。 以前,服务器审核日志已写入单独的文件夹;每个数据库都有一个,数据库名称用作文件夹名称。 使用新的更新,所有服务器审核日志都合并到标记为
master单个文件夹中。 此行为与Azure SQL Managed Instance和SQL Server相同。
- 其中一项主要更改涉及存储帐户容器中存储的审核日志的文件夹结构更改。 以前,服务器审核日志已写入单独的文件夹;每个数据库都有一个,数据库名称用作文件夹名称。 使用新的更新,所有服务器审核日志都合并到标记为
- 只读副本的文件夹结构变更:
- 以前,只读数据库副本的日志存储在只读文件夹中。 这些日志现在将写入文件夹
master。 可以通过筛选新列is_secondary_replica_true来检索这些日志。
- 以前,只读数据库副本的日志存储在只读文件夹中。 这些日志现在将写入文件夹
- 查看审核日志所需的权限:
-
VIEW DATABASE SECURITY AUDIT用户数据库中的权限
-
适用于大型 OLTP 工作负荷的建议审核方法
对于运行大量 OLTP 工作负荷的数据库环境,在默认设置下使用服务器级审计可能会导致整个逻辑服务器上的审计量非常大。 由于所有数据库中的所有事件都写入到同一个审核文件夹中,因此查询单个数据库的审核日志的速度变慢且作成本高昂。 提高性能和降低噪音:
- 切换到数据库级别审核。 每个数据库写入其自己的审核日志文件夹,从而减少扫描的总卷数,并加快检索速度。
- 查看审核配置。 确定捕获所有批处理已完成的事件是否是必需的,或者自定义筛选的配置是否可以满足安全性和符合性要求。
审核限制
- 不支持对暂停的 Azure Synapse SQL 池启用审核。 若要启用审核,请恢复 Synapse SQL 池。
- Azure Synapse不支持使用用户分配的托管标识(UAMI)启用审核。
- 目前,Azure Synapse不支持托管标识,除非存储帐户位于虚拟网络或防火墙后面。
注意
对于 Azure Synapse Analytics,审核 VNet 后面的存储帐户需要服务器的 系统分配的托管身份 以及 Storage Blob 数据参与者 角色。 Synapse 审计不支持用户分配的托管标识(UAMI)。 如果您需要审核仅使用 Microsoft Entra 身份验证的存储帐户,请在服务器上配置系统分配的托管标识,并在目标存储帐户上授予“存储 Blob 数据参与者”角色。 有关详细信息,请参阅 在 VNet 和防火墙保护下将审核写入存储帐户。
由于性能限制,我们不审核 tempdb 和 临时表。 虽然批处理已完成的操作组会捕获针对临时表的语句,但它可能无法正确填充对象名称。 但是,不断地审核源表,确保从源表到临时表的所有插入操作都会被记录。
Azure Synapse SQL 池的审核仅支持默认审核操作组。
在为 Azure 逻辑服务器或 Azure SQL 数据库配置审核,并将日志目的地设置为存储帐户时,身份验证模式必须与该存储帐户的配置相匹配。 如果使用存储访问密钥作为身份验证类型,则必须启用目标存储帐户以访问存储帐户密钥。 如果将存储帐户配置为仅将身份验证用于 Microsoft Entra ID(formerly Azure Active Directory),则可以将审核配置为使用托管标识进行身份验证。
名称中包含
?字符的数据库不支持审核。 这适用于 server-level 和 database-level 审核,因为名称中包含?的数据库不再支持Azure。Azure SQL Database 和 Azure Synapse 审核日志最多捕获 和
statement字段中的data_sensitivity_information。 如果可审核作的输出超出此限制,则会 截断 前 4,000 个字符以外的任何内容,并将其 从审核记录中排除。
备注
- 支持使用 BlockBlobStorage 的高级存储。 支持标准存储。 但是,要使审核写入 VNet 或防火墙后面的存储帐户,必须具有常规用途 v2 存储帐户。 如果有常规用途 v1 或Blob Storage帐户,升级到常规用途 v2 存储帐户。 有关具体说明,请参阅将审核写入 VNet 和防火墙后面的存储帐户。 有关详细信息,请参阅存储帐户的类型。
- 当客户启用 SQL 审核并配置 出站网络 限制时,他们必须允许列出其审核存储帐户的完全限定域名,以确保审核事件能够成功到达目标。 如果存储终结点未列入白名单,审核流量将被阻止,从而导致审核事件丢失。 将所需的存储帐户 FQDN 添加到允许列表后,客户必须 重新保存 其审核配置以恢复正常的审核事件流。
- 所有类型的标准存储帐户和使用 BlockBlobStorage 的高级存储帐户,均可启用分层命名空间。
- 审核日志将写入 附加 Blob 至 Azure 订阅中的 Azure Blob Storage。
- 审核日志采用 .xel 格式,可以使用
SQL Server Management Studio (SSMS) 。 - 若要为服务器或数据库级审核事件配置不可变日志存储,请遵循 Azure Storage 提供的说明。 配置不可变 Blob 存储进行审核时,请确保 将“允许受保护的追加写入” 设置为 “阻止并追加 Blob”。 不支持 “无” 选项。 对于基于时间的保留策略,存储帐户的保留间隔必须短于 SQL 审核保留设置。 不支持设置存储策略但 SQL 审核保留为
0的配置。 - 可以将审核日志写入虚拟网络或防火墙后面的Azure Storage帐户。
- 有关日志格式、存储文件夹的层次结构和命名约定的详细信息,请参阅 SQL 数据库审核日志格式一文。
- 系统自动启用对“使用只读副本卸载只读查询工作负载”的审核。 若要详细了解存储文件夹、命名约定和日志格式的层次结构,请参阅 SQL 数据库审核日志格式一文。
- 使用 Microsoft Entra 身份验证时,失败的登录记录不会显示在 SQL 审核日志中。 若要查看失败的登录审核记录,需要访问记录这些事件的详细信息的 Microsoft Entra admin center。
- 通过网关将登录信息路由到数据库所在的特定实例。 使用Microsoft Entra登录,凭据将在尝试使用该用户登录到请求的数据库之前进行验证。 如果失败,则绝不会访问请求的数据库,因此不会进行审核。 对于 SQL 登录,将根据请求的数据对凭据进行验证,因此在这种情况下可以对其进行审核。 在这两种情况下,到达数据库的成功登录显然都会被审核。
- 配置审核设置后,可打开新威胁检测功能,并配置电子邮件用于接收安全警报。 使用威胁检测时,你会收到针对异常数据库活动(可能表示存在潜在的安全威胁)发出的前瞻性警报。 有关详细信息,请参阅 SQL Advanced Threat Protection。
- 将启用了审核的数据库复制到另一个逻辑服务器后,你可能会收到一封电子邮件,通知你审核失败。 这是一个已知问题,审核应会在新复制的数据库上按预期运行。