【问题标题】:How to fetch data from a different sql server database without having access?如何在没有访问权限的情况下从不同的 sql server 数据库中获取数据?
【发布时间】:2013-06-24 16:57:06
【问题描述】:

我在同一个 SQL Server 实例中有两个数据库 A 和 B。我需要编写一个触发器 -- 更新数据库 B 中的表后,它将从数据库 A 的几个表中获取数据,然后在某个表中插入数据数据库B ..问题是将访问数据库B的用户无权访问数据库A ..如果我用'sa'帐户编写触发器,当用户在数据库B中插入一些数据时它会起作用吗?还请告诉我如果数据库 A 在不同的 SQL Server 中我该怎么办?

【问题讨论】:

    标签: sql-server database triggers


    【解决方案1】:

    可以工作,但你必须做一些事情才能到达那里。这是最简单的方法(虽然不一定是最好的):

    1. 将两个数据库的所有者设置为“sa”。

    2. 为两个数据库启用 CROSS-DATABASE 链接。

    3. 为源数据库 (B) 开启 TRUSTWORTHY。

    4. 编辑触发器并在 FOR 子句前添加WITH EXECUTE AS OWNER

    请注意,虽然这可行,但它具有重要的安全考虑(尤其是#2 和#3)。这是一个解释此方法和其他一些方法以及一些安全问题的链接:http://msdn.microsoft.com/en-us/library/ms188304.aspx

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-14
      • 2013-06-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多