【问题标题】:Do a stored procedure not infer permission on internal operations执行存储过程不推断内部操作的权限
【发布时间】:2014-01-27 16:33:21
【问题描述】:

SQL 服务器 ....

长期以来,我一直认为,将存储过程 exec 授予主体意味着 SP 可以做它需要做的任何事情,并且可以选择返回结果。

我目前正在开发一个 2012 年的数据库。我创建了一个 SP 并将 exec 授予 SQL 登录名。 用户收到错误消息。 我还必须授予我在 SP 中使用的表和函数的权限。

我的世界观也认为视图和功能不会以这种方式转让权利。

有什么变化吗?我是不是一直都在假装做手术?

我已经用谷歌搜索了答案,但似乎找不到讨论该主题的文章。

有什么想法吗?

谢谢

格雷格

【问题讨论】:

  • 存储过程中是否有不同数据库中的表?默认情况下,跨数据库 ownership chaining 在 SQL Server 中被禁用。
  • 同一个数据库。但不同的模式。所有权链接是我需要搜索的术语。感谢那。不同的模式是它的行为不像我预期的那样的原因。
  • 没问题。我怀疑您需要知道的所有内容,并且可能更多可以通过 Erland Sommarskog 找到 in this article

标签: sql sql-server stored-procedures permissions


【解决方案1】:

数据库链接是解决这些类型问题的概念。 在 2005 年以后,对象所有者的概念变成了持有对象的模式的概念。

在我的特定情况下,存储过程在一个模式中,函数在另一个模式中,表在另一个模式中。因此需要这些多笔资助。

在完成这项任务之前,我从未真正使用过模式。这就是他们在这里做事的方式,没关系。因此,我对这种行为感到惊讶。

格雷格

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-14
    • 1970-01-01
    • 2023-03-21
    • 2011-02-18
    • 2012-10-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多