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

如何查询SSRS中被禁用订阅的操作人?能否通过SSMS实现

SSRS禁用订阅操作账号排查方案

默认配置下,SSRS不会在Subscriptions、Catalog这类常规业务表中存储订阅状态变更的操作审计信息,直接遍历业务表无法找到操作人,可按以下优先级排查:

  • 优先查SSRS内置执行日志(2016及以上版本适用)
    订阅禁用操作会被记录在ReportServer库的ExecutionLog3视图中,直接执行以下SQL,替换时间范围和目标订阅ID即可定位操作账号:

    USE ReportServer;
    GO
    SELECT 
        UserName AS 操作账号,
        ItemAction AS 操作类型,
        [Path] AS 报表路径,
        TimeStart AS 操作时间,
        [Parameters] AS 操作参数
    FROM dbo.ExecutionLog3
    WHERE 
        TimeStart BETWEEN '订阅被禁用的时间范围起点' AND '订阅被禁用的时间范围终点'
        AND ItemAction LIKE '%Subscription%'
        AND [Parameters] LIKE '%<Disabled>True</Disabled>%'
    

    如果是2016以下版本,直接到SSRS服务日志目录C:\Program Files\Microsoft SQL Server Reporting Services\SSRS\LogFiles,找对应时间点的日志文件,搜索DisableSubscription、SetSubscriptionProperties关键字,日志中会记录操作的认证账号、来源IP。

  • 查SQL Server实例侧审计记录
    订阅禁用本质是对dbo.Subscriptions表的更新操作,会将InactiveFlags字段从0改为1。如果实例开启了默认跟踪、SQL Audit或扩展事件,可以直接检索对应时间段对该表的UPDATE操作记录,关联到执行操作的登录账号。参考查询默认跟踪的SQL:

    SELECT 
        te.name AS 事件类型,
        NTUserName AS 系统账号,
        LoginName AS SQL登录账号,
        StartTime AS 操作时间
    FROM sys.fn_trace_gettable(CONVERT(VARCHAR(150), 
        (SELECT TOP 1 value FROM sys.fn_trace_getinfo(NULL) WHERE property = 2)), DEFAULT) t
    JOIN sys.trace_events te ON t.EventClass = te.trace_event_id
    WHERE 
        ObjectName = 'Subscriptions'
        AND te.name = 'Object:Updated'
        AND StartTime >= '订阅异常的时间起点'
    ORDER BY StartTime DESC;
    
  • 先排查系统自动禁用场景
    并非所有禁用都是人工操作:当订阅连续投递失败次数达到SSRS配置阈值(默认3次),SSRS调度服务会自动将订阅标记为禁用,这类操作的执行账号为SSRS服务运行账号,无普通用户操作记录。可先执行以下SQL确认订阅状态:

    USE ReportServer;
    GO
    SELECT 
        s.LastStatus AS 最近一次运行状态,
        s.LastRunTime AS 最近运行时间,
        c.Name AS 关联报表名称
    FROM dbo.Subscriptions s
    JOIN dbo.Catalog c ON s.Report_OID = c.ItemID
    WHERE s.SubscriptionID = '目标订阅ID' AND s.InactiveFlags = 1
    

    如果LastStatus字段显示连续多次投递失败(如邮件服务连接失败、共享目录权限不足、报表执行报错),则为系统自动触发的禁用。

补充说明
  • SSRS默认日志留存周期为14-60天,需在日志被覆盖前完成排查。
  • 如果你的SSRS为SharePoint集成模式,操作审计记录存储在SharePoint平台审计日志中,需到SharePoint管理中心查询。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 10:09:47