【发布时间】:2015-02-13 14:40:39
【问题描述】:
我有 2 个数据库 X&Y。我在 X 上有一个用户,需要通过 X 中的视图访问 Y 中的表。X 有一个用于访问 Y 上的表的同义词。我需要用户访问视图,而不是访问同义词(我通过 DENY GRANT 实现了这一点),不直接访问 Y 数据库中的表(GRANT 权限没有帮助)。两个数据库都在 SQL Server-2012 中的同一实例上。 有没有办法在同一个实例上链接服务器是不可能的。
User->Database X->View->Synonym->Database Y->Should see Data 用户->数据库Y->表->不应该看到数据
【问题讨论】:
-
不能用存储过程代替视图吗?这样您就不需要将表 Y 的显式权限授予用户 X。
-
我需要将视图提供给最终用户进行报告,他们只需要访问 X 中的特定表集和 Y 中存在的表中的选择性记录。X 表不是问题,用户应该没有看到 Y 中的所有记录。他们需要加入表格才能创建报告。
标签: sql-server database cross-database