如何为用户(已经 dbo)授予存储过程的执行权限以运行 s-s-rS 报告

Posted

技术标签:

【中文标题】如何为用户(已经 dbo)授予存储过程的执行权限以运行 s-s-rS 报告【英文标题】:How to grant a execute permission on stored procedure for an user(Already dbo) to run a s-s-rS report 【发布时间】:2015-03-27 02:45:39 【问题描述】:

我是新手。 我已经有 dbo 权限。我编写了一个存储过程来将记录插入到某个表中,并设计了执行此存储过程的 s-s-rS 报告(添加记录的 UI)。 我们中的 5 个人拥有 dbo 权限,我怎样才能向 5 个用户中的 1 个用户(我)授予“执行”权限(已经拥有 dbo 权限)? 即在 Intranet 上部署 s-s-rS 报告(进而执行存储过程)时,我希望它只能由 1 个用户(我)执行。 谢谢。

【问题讨论】:

【参考方案1】:

有一些依赖关系,我假设您使用的是 Windows,并且您能够在要部署的机器上设置数据源?

是这样 - 确保将数据源设置为使用运行报告的人的 Windows 凭据运行?

一旦你知道了,你就可以将 UserID 作为参数传递给你的存储过程

User!UserID

然后你可以在SP中测试它是否是你的用户。

 if SYSTEM_USER = @username
      Insert into xxx...

【讨论】:

【参考方案2】:

旧线程,但我每天都会处理这个问题,也许将来会有其他人来寻找这个问题。我将假设您的服务器部署文件夹具有创建和部署数据源的权限。您部署的数据源可以使用您的 Windows 登录。但是,通常在部署 s-s-rS 时,授权执行设置为存储过程底部的组。您可以让您的 Windows 系统管理员将您添加到一个新的组/服务帐户,如果您添加更多的人,该帐户将在未来进行扩展。

将 [dbo].[proc name] 上的执行权限授予 [some_role]

这完全取决于您组织的规模。一家小型企业可能只是将一些东西拼凑在一起以使其正常工作,或者在我的情况下,大型金融机构将拥有严格的安全措施,我们必须遵守政策,否则审计将与我们一起玩。 -尼克

【讨论】:

以上是关于如何为用户(已经 dbo)授予存储过程的执行权限以运行 s-s-rS 报告的主要内容,如果未能解决你的问题,请参考以下文章

无法在 dbo 模式中执行存储过程

以编程方式为 Android 服务授予权限

HybridAuth:如何为现有用户请求额外权限?

如何为 zeppelin 用户授予正确的权限

如何为 cPanel 中特定子域的用户授予 SSH 访问权限

授予用户对数据库中所有存储过程的执行权限?