你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
Tip
Microsoft Fabric Data Warehouse是数据湖基础上的企业规模关系仓库,具有未来就绪的体系结构、内置 AI 和新功能。 如果不熟悉数据仓库,请从Fabric Data Warehouse开始。 现有的指定 SQL 池工作负荷可以升级到 Fabric,以跨数据科学、实时分析和报告访问新功能。
Azure Synapse Analytics审计跟踪数据库事件并将其写入Azure 存储,或发送给Azure 事件中心或Azure Monitor Log Analytics进行下游处理和分析。
命名约定
Blob 审计
存储在 Azure Blob 存储 中的审计日志存储在名为 sqldbauditlogs. 的容器中。 容器内的目录层级为 <ServerName>/<DatabaseName>/<AuditName>/<Date>/。 blob 文件名格式为 <CreationTime>_<FileNumberInSession>.xel,其中 CreationTime 使用 UTC hh_mm_ss_ms 格式,当 FileNumberInSession 会话跨越多个 blob 文件时 是运行索引。
例如,以下路径适用于服务器Server1上的数据库Database1:
Server1/Database1/SqlDbAuditing_ServerAudit_NoRetention/2019-02-03/12_23_30_794_0.xel
事件中心
审计事件写入了配置好的命名空间和事件中心。 事件被记录在Apache Avro 事件的正体中,并使用带有UTF-8编码的JSON格式。
Log Analytics
审计事件写入AzureDiagnostics配置后的 Log Analytics 工作区中的表格。 数据库审计事件使用该SQLSecurityAuditEvents类别,Microsoft 支持操作也使用该DevOpsOperationsAudit类别。 查询指导请参见 Log Analytics 查询。
审计日志字段
| 名称(blob) | 名称(Event Hubs/Log Analytics) | Description | Blob 类型 | Event Hubs/Log Analytics 类型 |
|---|---|---|---|---|
action_id |
action_id_s |
操作的 ID | varchar(4) |
string |
action_name |
action_name_s |
动作名称 | N/A | 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 |
审计对象的可审计实体描述 | N/A | string |
client_ip |
client_ip_s |
客户端应用程序的源 IP | nvarchar(128) |
string |
connection_id |
N/A | 服务器上连接的 ID | GUID |
N/A |
data_sensitivity_information |
data_sensitivity_information_s |
受审核查询根据数据库中分类的列返回的信息类型和敏感度标签。 欲了解更多信息,请参见 Azure Synapse Analytics 安全:威胁防护 | 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 |
N/A | 客户端主机名 | string |
N/A |
is_column_permission |
is_column_permission_s |
指示这是否为列级权限的标志。 1 = 真,0 = 假 | bit |
string |
| N/A | is_server_level_audit_s |
标识该审计是否发生在服务器端 | N/A | 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 Synapse Analytics。 | 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 |
| N/A | securable_class_type_s |
可保障的对象,映射到被审计对象class_type |
N/A | string |
sequence_group_id |
sequence_group_id_g |
唯一标识符 | varbinary |
GUID |
sequence_number |
sequence_number_d |
跟踪单个审核记录中的记录顺序,该记录太大而无法放在写入缓冲区中以进行审核。 Azure Synapse Analytics 审计在审计记录中存储 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 |
事件发生的会话编号 | 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 |
Not populated for Azure Synapse Analytics | 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 |