一批Reporting Service报表的订阅突然报如下错误:
Failure sending mail: The user or group name 'xxx\xxxx' is not recognized.Mail will not be resent.
原因如下,因为开发这批报表的人(也就是报表的创建者)离职了,然后他的NT账号在DC里面被系统管理员删除了。自然就没有权限将订阅的相关内容通过邮件推送给订阅者。
The user account and password you specify in the Email settings page should have permissions to send email using SMTP server.
解决方法也很简单,右键单击报表的“管理”,进入“订阅”,将这个订阅删除,然后新建一个订阅。问题就解决了。当然“新建订阅”的人必须有相关权限。
解决了这个问题。Support的同事又问了一个问题,能否用SQL脚本批量修改呢,因为有几十个报表,手工修改也确实很麻烦?另外,能否将报表的Owner(创建者)修改为其它用户呢? 花了点时间研究这个问题,备份了一个报表,然后测试发现可以通过SQL来完成这些操作,下面步骤仅供参考,谨记:这里的操作步骤,不能保证没有任何问题,因为没有官方资料支持,仅仅是个人实验测试,也没有大量测试验证。也没有在生产环境使用。仅供参考。
1:修改报表的创建者:
在Reporting Service管理界面是无法修改报表的创建者的。但是使用SQL简单、轻松。
SELECT ItemID, Path, Name, CreatedByID FROM dbo.Catalog WITH(NOLOCK) WHERE Name= N'xxx';
SELECT * FROM dbo.Users WHERE UserName='xxxx';
UPDATE dbo.Catalog SET CreatedByID ='CDF7C7C8-CBE2-4C42-BDF0-6FA2A5019F50' WHERE Name= N'xxx';