【问题标题】:Do I need to grant EXECUTE rights on a function that is called from a stored procedure?我是否需要对从存储过程调用的函数授予 EXECUTE 权限?
【发布时间】:2013-03-26 00:57:06
【问题描述】:

我有一个从另一个存储过程内部调用的 SQL 函数。我已授予调用该函数的存储过程的 EXECUTE 权限。

我是否也需要授予该函数的 EXECUTE 权限?

编辑

回应@AaronBertrand 的评论

该函数不访问数据库中的任何其他对象。它用于构建字符串。

【问题讨论】:

  • @AaronBertrand: true,但语法是GRANT EXECUTE ON ...。我就是这个意思。
  • 再次,这取决于函数访问的内容,调用存储过程的用户的权限等,您尝试过吗?发生了什么?
  • @AaronBertrand:我已经用您要求的更多信息更新了我的答案。我删除了该函数并重新创建了它(以删除可能与该函数关联的任何权限),它似乎可以工作。
  • @AaronBertrand:你想把你的评论作为答案,以便我给你信用吗?我不喜欢有未回答的问题.... :)

标签: sql-server-2008 database-permissions


【解决方案1】:

如果问题是您的用户无法执行它,请尝试删除并重新创建函数,并对函数本身及其引用的任何对象应用适当的权限。可能有一个DENY 在附近徘徊,它总是胜过GRANT

【讨论】:

  • 还值得一提的是,在我的具体情况下,由于该函数不访问数据库中的任何其他对象,因此无需分配任何权限。
猜你喜欢
  • 1970-01-01
  • 2017-07-06
  • 1970-01-01
  • 2015-12-01
  • 1970-01-01
  • 2011-04-18
  • 1970-01-01
  • 2010-09-30
  • 1970-01-01
相关资源
最近更新 更多