Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
适用于:Azure SQL 数据库
Azure SQL 托管实例
Azure SQL 数据库审核跟踪数据库事件并将其写入 Azure 存储帐户中的审核日志,或者将其发送到事件中心或 Log Analytics 供下游处理和分析。
命名约定
Blob 审核
Azure Blob 存储中存储的审核日志存储在 Azure 存储帐户中名为 sqldbauditlogs 的容器内。 该容器中的目录层次结构采用 <ServerName>/<DatabaseName>/<AuditName>/<Date>/ 格式。 Blob 文件名的格式为 <CreationTime>_<FileNumberInSession>.xel,其中,CreationTime 采用 UTC hh_mm_ss_ms 格式,FileNumberInSession 是运行的索引(如果会话日志跨多个 Blob 文件)。
例如,对于 Database1 上的数据库 Server1,下面是可能的有效路径:
Server1/Database1/SqlDbAuditing_ServerAudit_NoRetention/2019-02-03/12_23_30_794_0.xel
只读副本审核日志存储在同一容器中。 该容器中的目录层次结构采用 <ServerName>/<DatabaseName>/<AuditName>/<Date>/RO/ 格式。 Blob 文件名共享相同的格式。 只读副本的审核日志存储在同一容器中。
事件中心
审核事件将写入命名空间以及配置审核期间定义的事件中心,在 Apache Avro 事件的正文中捕获,并使用 UTF-8 编码的 JSON 格式进行存储。 要读取审核日志,可以使用 Avro 工具或处理此格式的类似工具。
Log Analytics
审核事件会写入审核配置期间定义的 Log Analytics 工作区、类别为 AzureDiagnostics 的 SQLSecurityAuditEvents 表和适用于 Microsoft 支持部门操作的类别为 DevOpsOperationsAudit 的表。 有关 Log Analytics 搜索语言和命令的其他有用信息,请参阅 Log Analytics 搜索参考。
审核日志字段
| 名称 (Blob) | 名称(事件中心/Log Analytics) | 说明 | Blob 类型 | 事件中心/Log Analytics 类型 |
|---|---|---|---|---|
action_id |
action_id_s |
操作的 ID | varchar(4) |
string |
action_name |
action_name_s |
操作的名称 | 空值 | string |
additional_information |
additional_information_s |
有关事件的任何附加信息,以 XML 形式存储 | nvarchar(4000) |
string |
affected_rows |
affected_rows_d |
查询影响的行数 | bigint |
int |
application_name |
application_name_s |
客户端应用程序的名称 | nvarchar(128) |
string |
audit_schema_version |
audit_schema_version_d |
始终为 1 | int |
int |
class_type |
class_type_s |
发生审核的可审核实体的类型 | varchar(2) |
string |
class_type_desc |
class_type_description_s |
发生审核的可审核实体的说明 | 空值 | string |
client_ip |
client_ip_s |
客户端应用程序的源 IP | nvarchar(128) |
string |
connection_id |
空值 | 服务器中的连接的 ID | GUID |
空值 |
data_sensitivity_information |
data_sensitivity_information_s |
受审核查询根据数据库中分类的列返回的信息类型和敏感度标签。 详细了解 Azure SQL 数据库数据发现和分类 | nvarchar(4000) |
string |
database_name |
database_name_s |
在其中执行操作的数据库上下文 | sysname |
string |
database_principal_id |
database_principal_id_d |
在其中执行操作的数据库用户上下文的 ID | int |
int |
database_principal_name |
database_principal_name_s |
在其中执行操作的数据库用户上下文的名称 | sysname |
string |
duration_milliseconds |
duration_milliseconds_d |
查询执行持续时间,以毫秒为单位 | bigint |
int |
event_time |
event_time_t |
激发可审核操作的日期和时间 | datetime2 |
datetime |
host_name |
空值 | 客户端主机名 | string |
空值 |
is_column_permission |
is_column_permission_s |
指示是否为列级权限的标志。 1 = true,0 = false | bit |
string |
| 空值 | is_server_level_audit_s |
指示此项审核是否在服务器级别发生的标志 | 空值 | string |
object_ 身份证 |
object_id_d |
发生审核的实体的 ID。 包括:服务器对象、数据库、数据库对象和架构对象。 如果实体是服务器本身,或者审核不是在对象级别执行的,则值为 0 | int |
int |
object_name |
object_name_s |
发生审核的实体的名称。 包括:服务器对象、数据库、数据库对象和架构对象。 如果实体是服务器本身,或者审核不是在对象级别执行的,则值为 0 | sysname |
string |
obo_middle_tier_app_id |
obo_middle_tier_app_id_s |
中间层应用的应用程序ID,通过OBO访问连接到Azure SQL 数据库。 | varchar(120) |
string |
permission_bitmask |
permission_bitmask_s |
在适用的情况下,显示已授予、已拒绝或已撤销的权限 | varbinary(16) |
string |
response_rows |
response_rows_d |
在结果集中返回的行数 | bigint |
int |
schema_name |
schema_name_s |
在其中执行操作的架构上下文。
NULL 用于模式外的审计 |
sysname |
string |
| 空值 | securable_class_type_s |
可保障的对象,映射到被审计对象class_type |
空值 | string |
sequence_group_id |
sequence_group_id_g |
唯一标识符 | varbinary |
GUID |
sequence_number |
sequence_number_d |
跟踪单个审核记录中的记录顺序,该记录太大而无法放在写入缓冲区中以进行审核。 Azure SQL 数据库 审计在审计记录中存储 4000 字符的字符字段数据。 当超过 4000 个字符时,任何超过前 4000 个字符的数据都将被截断 | int |
int |
server_instance_name |
server_instance_name_s |
发生审核的服务器实例的名称 | sysname |
string |
server_principal_id |
server_principal_id_d |
在其中执行操作的登录上下文的 ID | int |
int |
server_principal_name |
server_principal_name_s |
当前登录名 | sysname |
string |
server_principal_sid |
server_principal_sid_s |
当前登录名 SID | varbinary |
string |
session_id |
session_id_d |
发生事件的会话的 ID | smallint |
int |
session_server_principal_name |
session_server_principal_name_s |
会话的服务器主体 | sysname |
string |
statement |
statement_s |
执行的 T-SQL 语句(如果有) | nvarchar(4000) |
string |
succeeded |
succeeded_s |
指示触发事件的操作是否成功。 对于除登录和批处理以外的事件,此字段仅报告权限检查是成功还是失败,而不会报告操作结果。 1 = 成功,0 = 失败 | bit |
string |
target_database_principal_id |
target_database_principal_id_d |
操作执行的数据库主体GRANT//DENYREVOKE为0(如果不适用) |
int |
int |
target_database_principal_name |
target_database_principal_name_s |
操作的目标用户。
NULL 如果不适用 |
string |
string |
target_server_principal_id |
target_server_principal_id_d |
执行操作的服务器主体GRANT/DENY/REVOKE。 如果不适用,则返回 0 |
int |
int |
target_server_principal_name |
target_server_principal_name_s |
操作的目标登录名。
NULL 如果不适用 |
sysname |
string |
target_server_principal_sid |
target_server_principal_sid_s |
目标登录名的 SID。
NULL 如果不适用 |
varbinary |
string |
transaction_id |
transaction_id_d |
仅适用于 SQL Server(2016 和更高版本)- 对于 Azure SQL 数据库,值为 0 | bigint |
int |
user_defined_event_id |
user_defined_event_id_d |
作为参数 sp_audit_write传递给的用户定义的事件 ID。
NULL 用于系统事件(默认值)和用户定义的事件的非零。 有关详细信息,请参阅 sp_audit_write (Transact-SQL) |
smallint |
int |
user_defined_information |
user_defined_information_s |
用户定义的信息作为参数传递给 sp_audit_write。
NULL 用于系统事件(默认值)和用户定义的事件的非零。 有关详细信息,请参阅 sp_audit_write (Transact-SQL) |
nvarchar(4000) |
string |
Azure Synapse Analytics中的审核
有关 Azure Synapse Analytics 中审计日志格式的信息,请参见审计日志格式。
后续步骤
详细了解 Azure SQL 数据库审核。