繁体   English   中英

Sql 服务器:如何拒绝用户访问链接服务器

[英]Sql Server: How to Deny users access to linked servers

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

编辑:

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

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

在链接服务器属性对话框中,属性选项卡; 补充一点,你不想访问链接服务器的用户。 然后,为它们分配一些将在目标服务器上拒绝的虚拟用户/通行证组合。

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

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

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

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

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

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

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

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

拒绝 SELECT ON [sys].[sysservers] on <..>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM