DBlink(s)哪一个更安全:公共链接还是私人链接?

时间:2013-04-24 16:17:01

标签: .net sql oracle dblink

我正在尝试使用私有/公共dblinks来考虑安全问题。

您可以在下面的图片中看到我在说什么

image

所以,如图所示(右边选项是公共的,左边是私人的)你认为哪一个是安全的?

1 个答案:

答案 0 :(得分:1)

我建议使用私有数据库链接,并为需要通过数据库链接访问的表创建视图。

因此,如果您的数据库db1的用户user1db1,user2db1和user3db1需要访问另一个数据库db2中的table1,请执行以下操作:

  1. 创建用户linksdb1。
  2. 让该用户拥有一个到db2的私有数据库链接。
  3. 为table1 @ db2
  4. 创建一个视图linksdb1.table1
  5. 授予视图的user1db1,user2db1和user3db1权限。
  6. 这有两个原因:

    • 安全。通过这样做,您可以完全控制允许哪些用户通过数据库链接访问该表,因为他们需要访问该视图。
    • 可维护性。您不需要在SQL中包含dblink,从user1db1的角度来看,他正在访问名为linksdb1.table1的表,而不是table1 @ db2。这样,如果将表移动到另一个数据库db3,则只需要更改视图,而不是所有SQL。