2010-06-28 47 views
3

我想拒绝访问链接服务器查询到一组用户。我已经将它们放在一个角色中,并将某些权限分配给该组的对象级权限。在搜索BOL和'net如何拒绝访问链接的服务器之后,我感到茫然。Sql Server:如何拒绝用户访问连接的服务器

编辑:

我决定打破了探查,以验证显示链接的服务器,并确保否认该系统视图/ SP发出时,正是SSMS呼吁。原来它调用了sys.servers,但Sql Server在这个系统视图中没有遵守ACL - 它对其他系统视图(例如:sys.dm_db_index_physical_stats)有效。

回答

5

引用链接服务器的Afaik不受访问控制列表(ACL)的控制。换句话说,您无法将GRANT/DENY/REVOKE权限授予使用的链接服务器。您当然可以通过ALTER ANY LINKED SERVER权限控制更改链接服务器的权限。

这种明显缺乏权限是因为链接的服务器正在将特定的凭据转发到远程服务器,通过与链接服务器关联的模拟或remote_logins设置进行控制。实际的访问控制发生在远程服务器上,使用与链接服务器相关的凭证。因此,为了拒绝一组用户访问链接服务器,您需要拒绝该组访问远程服务器本身上的远程服务器

+1

根据您的设置,我猜你也可以尝试使用登录映射功能。通常,我更喜欢集成安全性,并根据实际身份对实际用户的适当权限处理所有内容。 – 2010-06-28 22:00:35

+0

我曾希望有办法做到这一点。我记得在Sql Server 200上使用了一个工具,它会改变系统对象的权限,以防止一些用户看到链接服务器的列表,但不能查询它们。在这种情况下,他们不能使用所有链接服务器的集成安全性,但对于某些我可以修改设置。感谢您的回应。 – Chad 2010-06-29 16:30:47

0

认证的类型非常重要。在链接服务器时,必须使用Kerberos链接它们,然后才能控制链接服务器上的访问。否则,您的组将始终通过链接中指定的凭据进行身份验证。

4

这里我只是想一个解决办法:

在链接服务器属性对话框,属性选项卡;添加用户,你不要想要访问链接的服务器。然后,为它们分配一些将在目标服务器上被拒绝的虚拟用户/传递组合。

+0

感谢您的想法。这有效,但会被认为是最佳做法? – FumblesWithCode 2016-04-12 18:08:07

0

AFACS,链接的服务器缺少适当的访问控制。我想做到以下几点:

  1. 用于连接到远程服务器
  2. 创建凭据创建一个新的链接服务器: 一个。指定服务器角色或AD组或安全性为本地用户 b。指定凭证作为远程用户
  3. 将登录添加到服务器角色或AD组以控制访问。