【问题标题】:Cross Database Security跨数据库安全
【发布时间】: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


【解决方案1】:

我最终在两个数据库中创建了两个具有相同名称 (V_W) 的视图。我在 Y 中创建的视图中编写了从 X 中获取所需数据集的逻辑。我在 X 中创建了视图,只需调用在 Y 中查看,它起作用了。至少我实现了我的目的,这不是最好的过程

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-02-02
    • 2021-06-10
    • 2018-05-02
    • 1970-01-01
    • 2016-07-19
    • 2011-05-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多