我们都知道,SSRS用户可以使用Reporting Manager创建,可以通过Reporting Service配置管理器实用程序中给出的url访问。
但是,我的要求是使用Query创建一个新的SSRS用户。我只是想知道这样做是否可能。如果是,怎么做?类似的东西应该可以工作。
USE ReportServer
GO
IF NOT EXISTS (SELECT * FROM master.dbo.syslogins WHERE loginname = N'loginname')
CREATE LOGIN [loginname] FROM WINDOWS
GO
CREATE USER [loginname] FOR LOGIN [loginname]
GO
不能使用报表管理器URL创建用户。权限管理/角色分配只能通过它来完成。
将Login/User添加到[ReportServer]数据库并不意味着用户可以访问报告。
组名或用户名应该是Windows域用户或组帐户,格式如下:<domain><account>
.
https://msdn.microsoft.com/en-us/library/ms156034.aspx?f=255& MSPPError = -2147217396
有一种方法可以实现在查询中检查用户访问的要求。首先,在Report Manager中,为所有用户赋予"Browser"角色(例如,"NT AUTHORITYAuthenticated users")。然后,将报告的当前用户传递给数据库查询。
可以使用报表表达式User!UserID
检索报表的当前用户。在我的环境中,它以<DOMAIN><WINDOWS USER NAME>
的形式返回。有关更多信息,请参阅MSDN内置全局变量和用户参考(报表生成器和SSRS)。