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

VM部署SSRS订阅后所有者域名异常变更问题咨询

解决未加入域的VM上SSRS订阅所有者域名被替换为物理机名的问题

我之前帮客户排查过几乎一模一样的问题,这其实是SSRS在非域环境下解析本地账户时的一个默认行为——它会“穿透”虚拟机,优先抓取物理主机的NetBIOS名称来替代VM自身的计算机名,所以所有同物理机上的VM都会显示同一个WIN-XXXXXXXXX前缀。

问题根源

当SSRS运行在未加入域的系统上时,它依赖Windows的LookupAccountName API来解析账户身份。但在虚拟化环境中,这个API有时会绕过VM的本地标识,直接获取到物理主机的名称,导致订阅编辑时账户域名被替换。

解决方案(按优先级推荐)

1. 修改SSRS配置文件强制指定机器名

这是最直接有效的修复方法:

  • 找到SSRS的服务配置文件ReportingServicesService.exe.config,默认路径根据SQL Server版本不同略有差异,比如:
    • SQL Server 2017/2019: C:\Program Files\Microsoft SQL Server\MSRS15.MSSQLSERVER\Reporting Services\ReportServer\bin
    • SQL Server 2022: C:\Program Files\Microsoft SQL Server\MSRS16.MSSQLSERVER\Reporting Services\ReportServer\bin
  • 打开文件,在<configuration>根节点下添加以下配置段,把YOUR_VM_COMPUTER_NAME替换成你的VM实际计算机名(也就是你预期的COMPUTER_NAME):
<appSettings>
  <add key="MachineName" value="YOUR_VM_COMPUTER_NAME" />
</appSettings>
  • 保存文件后,重启SQL Server Reporting Services服务,再测试订阅的创建和编辑。

2. 调整VM本地安全策略

如果配置文件修改无效,可以尝试调整本地账户的验证模型:

  • 打开本地安全策略(按下Win+R,输入secpol.msc回车)
  • 导航到本地策略 > 安全选项
  • 找到“网络访问:本地账户的共享和安全模型”,将其设置为经典 - 本地用户以自己的身份验证
  • 重启VM后再测试订阅功能。

3. 直接修改SSRS数据库修复现有订阅

如果需要快速修复已存在的错误订阅,可以直接操作SSRS的后台数据库:

  • 打开SSMS,连接到SSRS对应的SQL Server实例,找到默认的ReportServer数据库
  • 执行以下SQL语句,替换占位符为你的实际账户信息:
-- 更新订阅的所有者ID,替换为正确的本地账户
UPDATE Subscriptions
SET OwnerID = (SELECT UserID FROM Users WHERE UserName = 'COMPUTER_NAME\USER_NAME')
WHERE OwnerID = (SELECT UserID FROM Users WHERE UserName = 'WIN-XXXXXXXXX\USER_NAME')

注意:修改数据库前务必备份,避免操作失误导致数据损坏。

额外提示

  • 确保你的VM计算机名在物理网络中是唯一的,避免名称冲突引发的解析异常
  • 如果后续计划将VM加入域,这个问题会自动消失——域环境下账户解析会依赖域控制器,不再使用本地API。

内容的提问来源于stack exchange,提问作者Andreas Ulvøen

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 03:11:17