SSRS中Windows身份验证与订阅配置问题咨询
实现SSRS订阅用通用账户、交互式用Windows身份的方案
当然可以实现这个需求!我之前帮不少用户解决过一模一样的问题,核心是利用SSRS数据源的凭据模拟配置,来区分交互式访问和后台订阅这两种场景的身份使用逻辑。
为什么当前订阅会失败?
首先得搞清楚根源:订阅是SSRS服务在后台自动执行的,这时候没有交互式用户的登录上下文,没法用用户的Windows身份去连接数据源,所以必须有预先存储的凭据供后台调用。而你之前只设置了“使用用户的Windows登录身份”,没有存储任何凭据,自然会报错。
具体配置步骤
1. 修改数据源配置
不管你用的是共享数据源还是报表内嵌数据源,都按以下步骤调整:
- 打开数据源的设置界面
- 选择**“使用以下凭据”**选项(这是存储通用账户的关键)
- 凭据类型选择**“Windows身份验证(集成)”**
- 输入你的通用服务账户信息(比如
DOMAIN\SSRS_General_Account,建议用专门的服务账户,别用个人账号) - 重点勾选**“在与数据源建立连接时模拟经过身份验证的用户”**
- 这个选项的作用是:当用户交互式访问报表时,SSRS会自动模拟当前登录用户的Windows身份去连接数据源;当执行后台订阅时,因为没有交互式用户,就会 fallback 到你存储的这个通用账户身份。
2. 配置权限
- 确保你输入的通用账户拥有数据源对应数据库的读取权限(至少是报表需要的查询权限)
- 确保所有需要交互式访问报表的用户,也拥有对应的数据库访问权限
3. 验证效果
- 交互式运行报表:此时你能看到报表用的是你自己的Windows身份(可以在报表里加个
SUSER_SNAME()的查询来验证) - 创建订阅:现在SSRS有了存储的通用账户凭据,后台执行订阅时就能正常连接数据源,不会再弹出“未存储凭据”的错误
注意事项
- 通用服务账户最好设置成密码永不过期,避免后续订阅因为密码过期失效
- 如果是共享数据源,修改一次配置后,所有引用它的报表都会自动生效,不用逐个调整
内容的提问来源于stack exchange,提问作者Matthew
相关产品推荐
相关产品推荐

