通过同义词访问时的安全上下文问题

发布于 2024-11-02 17:28:03 字数 333 浏览 3 评论 0原文

服务器上有一个用户和两个数据库(db1 和 db2)。 用户可以连接到具有默认数据库 db1 的服务器,他可以在其中执行 sp。 在 sp 语法中,我们使用 dbo 方案下的 db2 表的同义词。

完成所有这一切都是为了允许用户仅连接并执行一个存储过程。它可以正常工作,但现在服务器主体“用户”无法在当前安全上下文下访问数据库“db2”

当代码不触及 db2 的同义词时,用户从 sp 获取输出。 应该更新什么?我无法向用户授予 db2 对象的选择权限。

在此处输入图像描述

There is a user and two databases on server (db1 and db2).
User can connect to server having default database db1 where he can exec sp.
In sp syntax we use synonyms for db2 tables under dbo scheme.

All that is done in order to allow user just connect and exec one stored procedure. It worked noraml but now The server principal "user" is not able to access the database "db2" under the current security context.

User gets output from sp when code does not touch synonyms to db2.
What should be updated? I cant grant select to user for db2 objects.

enter image description here

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

风蛊 2024-11-09 17:28:03

我知道这个问题很旧,但仍然相关

  • 该过程必须拥有同义词对象的权限
  • 该过程必须拥有同义词所针对的对象的权限
  • 您必须正确设置可信 数据库属性

默认情况下,该过程在调用者帐户,但可以使用 执行为子句。

I know the question is old, but still relevant

  • the procedure has to have permission on the synonym object
  • the procedure has to have permission on the object the synonym is targeting
  • you have to correctly setup trustworthy database property

By default, the procedure executes under the caller account, but it can be changed with execute as clause.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文