【发布时间】:2023-03-09 18:52:01
【问题描述】:
我很好奇用户是否可以使用数据库 A 中的视图(他们有权访问数据库 A)访问数据库 B 中的表(和/或他们无权访问的其他数据库)没有用户访问数据库 B 的权限?
我的场景:
我们目前有一个数据库(数据库 A),其中存放了大部分视图。团队中的大多数用户也可以访问数据库 A。我们希望将数据库 A 中的数据表拆分到他们自己的数据库中(在同一台服务器上)。当然,当我们这样做时,视图会中断,因为它们访问的表现在将位于数据库 B 中。由于视图太多,我正在寻找一种更简单的方法。我的想法是使用数据库 A 作为视图的中心,并且在访问视图时,会为用户授予各种数据库的权限 - 而无需让他们直接访问其他数据库。
提前谢谢你。
【问题讨论】:
-
如果在两个数据库中都启用 DB_CHAINING,只要数据库所有者相同,就不需要对表的权限。但是,仍然需要授予用户访问数据库 B 的权限(但没有其他权限)。您可以启用数据库 B 中的来宾用户以避免将用户添加到其他数据库。
标签: sql-server view permissions