【问题标题】:How to grant a execute permission on stored procedure for an user(Already dbo) to run a SSRS report如何为用户(已经 dbo)授予存储过程的执行权限以运行 SSRS 报告
【发布时间】:2015-03-27 02:45:39
【问题描述】:
我是新手。
我已经有 dbo 权限。我编写了一个存储过程来将记录插入到某个表中,并设计了执行此存储过程的 SSRS 报告(添加记录的 UI)。
我们中的 5 个人拥有 dbo 权限,我怎样才能向 5 个用户中的 1 个用户(我)授予“执行”权限(已经拥有 dbo 权限)?
即在 Intranet 上部署 SSRS 报告(进而执行存储过程)时,我希望它只能由 1 个用户(我)执行。
谢谢。
【问题讨论】:
标签:
sql
sql-server-2008
ssrs-2008
ssrs-2008-r2
【解决方案1】:
有一些依赖关系,我假设您使用的是 Windows,并且您能够在要部署的机器上设置数据源?
是这样 - 确保将数据源设置为使用运行报告的人的 Windows 凭据运行?
一旦你知道了,你就可以将 UserID 作为参数传递给你的存储过程
User!UserID
然后你可以在SP中测试它是否是你的用户。
if SYSTEM_USER = @username
Insert into xxx...
【解决方案2】:
旧线程,但我每天都会处理这个问题,也许将来会有其他人来寻找这个问题。我将假设您的服务器部署文件夹具有创建和部署数据源的权限。您部署的数据源可以使用您的 Windows 登录。但是,通常在部署 SSRS 时,授权执行设置为存储过程底部的组。您可以让您的 Windows 系统管理员将您添加到一个新的组/服务帐户,如果您添加更多的人,该帐户将在未来进行扩展。
去
将 [dbo].[proc name] 上的执行权限授予 [some_role]
去
这完全取决于您组织的规模。一家小型企业可能只是将一些东西拼凑在一起以使其正常工作,或者在我的情况下,大型金融机构将拥有严格的安全措施,我们必须遵守政策,否则审计将与我们一起玩。 -尼克