You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置Azure SQL DB仅存储登录登出事件至AZUREDIAGNOSTICS并查询

Azure SQL PaaS 登录/登出审计配置与查询方案

1. 配置仅捕获登录/登出事件到AZUREDIAGNOSTICS表

你之前未捕获到登录登出事件,核心原因是服务器级审计策略未勾选对应事件类别,按以下步骤调整:

  • 登录Azure门户,找到目标Azure SQL Server
  • 左侧导航栏进入「安全」→「审计」
  • 确认已启用服务器级审计,且目标为Log Analytics工作区
  • 点击「编辑设置」,在「审计事件」区域:
    • 取消所有默认勾选的非必要事件类别
    • 仅保留:成功的登录、失败的登录、登出(对应底层事件标识SUCCESSFUL_LOGINS、FAILED_LOGINS、LOGOUTS)
  • 保存配置,等待10-15分钟生效,之后只有这些指定事件会写入AZUREDIAGNOSTICS表

2. 从AZUREDIAGNOSTICS查询登录/登出日志的Kusto语句

查询所有登录事件(成功+失败)

AZUREDIAGNOSTICS
| where ResourceType == "SQLSERVERS"
| where Category == "SQLSecurityAuditEvents"
| where operationName in ("SUCCESSFUL_LOGINS", "FAILED_LOGINS")
| project
    时间 = TimeGenerated,
    事件类型 = OperationName,
    SQL服务器名 = resource_name,
    数据库名 = tostring(parse_json(AdditionalProperties).database_name),
    登录账号 = tostring(parse_json(AdditionalProperties).server_principal_name),
    客户端IP = tostring(parse_json(AdditionalProperties).client_ip),
    会话ID = tostring(parse_json(AdditionalProperties).session_id)
| sort by 时间 desc

查询登出事件

AZUREDIAGNOSTICS
| where ResourceType == "SQLSERVERS"
| where Category == "SQLSecurityAuditEvents"
| where operationName == "LOGOUTS"
| project
    时间 = TimeGenerated,
    事件类型 = OperationName,
    SQL服务器名 = resource_name,
    数据库名 = tostring(parse_json(AdditionalProperties).database_name),
    登录账号 = tostring(parse_json(AdditionalProperties).server_principal_name),
    会话ID = tostring(parse_json(AdditionalProperties).session_id)
| sort by 时间 desc

说明:如果AdditionalProperties解析失败,可先执行AZUREDIAGNOSTICS | where Category == "SQLSecurityAuditEvents" | take 10 | project AdditionalProperties查看原始字段结构,调整解析逻辑。

内容的提问来源于stack exchange,提问作者TATAS

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 21:07:31