gpt4 book ai didi

sql-server - 授予对 View 的读取访问权限,但不授予对其他数据库的基础表的读取访问权限

转载 作者:搜寻专家 更新时间:2023-10-30 23:38:08 24 4
gpt4 key购买 nike

我想授予用户读取权限,以查看连接来自另一个数据库的 2 个表的 View 。我不想想要:

  1. 授予他对表所在数据库的权限,或将他添加为该数据库的用户。
  2. 由于安全漏洞,让他成为 View /架构的所有者。
  3. 我不想先创建一个表,或者带有 truncate 的 hack 表的变体和一个在触发器上插入数据的存储过程。

这能以某种方式完成吗?也许我错过了什么,你们可能知道。

我已经阅读了这些帖子,但它们并没有解决我的问题: Grant SELECT permission on a view, but not on underlying objects

Grant Select on a view not base table when base table is in a different database

https://msdn.microsoft.com/en-us/library/ms188676.aspx

https://dba.stackexchange.com/questions/89632/sql-server-grant-select-access-to-a-user-in-a-view-and-not-in-its-tables

谢谢

编辑:经过一些研究,我想到的最简单的解决方案是在我放置 View 并向用户授予读取权限的数据库上激活跨数据库所有权链接选项。这可能与我试图避免的第二点相反。这是个好主意吗?

最佳答案

让他们登录到同一台服务器上的另一个数据库,并只包含您的单一 View ,该 View 指向您的安全数据库。除了包含其中的 View 的数据库之外,不要授予该登录名任何访问权限,并且只授予对该单个 View 的读取访问权限。显然,您必须完全限定表名(例如,from SourceDB.dbo.SomeSecretTable)。

关于sql-server - 授予对 View 的读取访问权限,但不授予对其他数据库的基础表的读取访问权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38829205/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com