SQL Server 2016 Standard版SSRS自定义文件夹权限时报错求助
SSRS 2016 Standard 自定义文件夹权限报错「Wrong number of tasks found for roleBrowser」解决方法
问题背景
使用SQL Server 2016 Standard版SSRS,点击文件夹安全设置里的「Customize security」按钮时,弹出错误:
An internal error occurred on the report server. See the error log for more details.
查看转储日志,核心错误为:Wrong number of tasks found for roleBrowser
此前误将ReportServer数据库连接到更高版本的SSRS实例(2016 Standard不支持远程SSRS数据库),导致数据库中角色与任务的关联被高版本修改,引发当前异常。已尝试修复数据库、调整Report Configuration Manager设置,均未解决。
解决方案
1. 检查并重置Browser角色的任务关联
SSRS 2016中Browser角色默认绑定15个任务,数量不符就会触发报错。先在ReportServer数据库执行SQL验证:
SELECT COUNT(*) AS TaskCount FROM dbo.Roles r JOIN dbo.RoleTasks rt ON r.RoleID = rt.RoleID WHERE r.Name = 'Browser';
如果返回数量不是15,先备份ReportServer数据库,再执行以下脚本重置:
-- 删除Browser角色现有任务关联 DELETE FROM dbo.RoleTasks WHERE RoleID = (SELECT RoleID FROM dbo.Roles WHERE Name = 'Browser'); -- 重新添加2016 SSRS默认的Browser角色任务 INSERT INTO dbo.RoleTasks (RoleID, TaskID) SELECT (SELECT RoleID FROM dbo.Roles WHERE Name = 'Browser'), TaskID FROM dbo.Tasks WHERE TaskID IN (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15);
2. 重启SSRS服务
打开Reporting Services Configuration Manager,切换到「服务」标签,先停止服务,再启动,确保配置生效。
3. 验证功能
再次点击文件夹的「Customize security」按钮,确认是否能正常打开权限设置界面。
注意事项
- SQL Server 2016 Standard版SSRS仅支持ReportServer数据库与SSRS实例同服务器部署,禁止跨版本或跨服务器连接ReportServer数据库。
- 执行任何数据库操作前,务必备份ReportServer和ReportServerTempDB,避免数据丢失。
内容的提问来源于stack exchange,提问作者LordAlfredHayes
相关产品推荐
相关产品推荐

