【问题标题】:Sql Server: How to Deny users access to linked serversSql Server:如何拒绝用户访问链接服务器
【发布时间】:2011-03-09 08:08:04
【问题描述】:

我想拒绝一组用户访问查询链接服务器。我已将他们置于一个角色中,并将某些权限分配给该组的对象级权限。在搜索 BOL 和“如何拒绝访问链接服务器”后,我不知所措。

编辑:

我决定拆分分析器以验证在显示链接服务器时 SSMS 正在调用的确切内容,并确保在该系统视图/SP 上发出了 DENY。结果它调用了 sys.servers,但 Sql Server 不支持此系统视图上的 ACL——它适用于其他系统视图(例如:sys.dm_db_index_physical_stats)。

【问题讨论】:

    标签: sql-server security permissions


    【解决方案1】:

    这是我刚刚想到的解决方法:

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

    【讨论】:

    • 感谢您的想法。这可行,但它会被视为最佳做法吗?
    • 只是一个想法,但是,您可以将其翻转以使其更安全。在属性/安全选项卡中分配错误的密码,并使用正确的凭据为允许访问的用户添加条目。刚刚测试了这个。似乎工作。但这感觉......完全错了:)
    【解决方案2】:

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

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

    【讨论】:

    • 根据您的设置,我猜您也可以尝试使用登录映射功能。通常,我更喜欢集成安全性,并根据实际用户的实际身份处理具有适当权限的所有事情。
    • 我希望有办法做到这一点。我记得在 Sql Server 200 上使用了一个工具,它会改变系统对象的权限,以防止某些用户能够看到链接服务器的列表,但不能查询它们。在这种情况下,他们不能对所有链接服务器使用集成安全性,但是对于某些我可以修改设置。感谢您的回复。
    【解决方案3】:

    身份验证类型很重要。当您链接服务器时,它们必须使用 Kerberos 进行链接,然后您可以控制链接服务器上的访问。否则,您的群组将始终根据链接中指定的凭据进行身份验证。

    【讨论】:

      【解决方案4】:

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

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

      【讨论】:

        【解决方案5】:

        获取您的事务语句,将其放入 SSIS 包“执行 SQL 任务”

        在链接服务器安全属性中,将要访问链接服务器的用户 ID(在您的服务器上)与链接服务器的 uid 和 pw 一起添加到顶部,然后单击单选按钮“不进行”

        当您在 sql server 代理中安排您的作业时,选择您的 ssis 包并在作业步骤中的 run as 行中使用您的代理 (db/security/credentials)。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-06-21
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-10-08
          • 2021-01-20
          • 1970-01-01
          相关资源
          最近更新 更多