我想拒绝访问查询链接服务器给一组用户。我已将它们置于一个角色中,并为该组的对象级权限分配了某些权限。在搜索BOL和'网络如何拒绝访问链接服务器之后,我感到很茫然。
编辑:
我决定打开分析器以确认在显示链接服务器时SSMS正在调用什么,并确保在该系统视图/ SP上发出了DENY。原来它调用sys.servers,但Sql Server不支持此系统视图上的ACL - 它对其他系统视图有效(例如:sys.dm_db_index_physical_stats)。
答案 0 :(得分:7)
这是我刚才想到的解决方法:
在“链接服务器属性”对话框的“属性”选项卡上;添加您不想要访问链接服务器的用户。然后,为它们分配一些将在目标服务器上拒绝的虚拟用户/通行证组合。
答案 1 :(得分:6)
引用链接服务器的Afaik不受访问控制列表(ACL)的控制。换句话说,您无法授予/拒绝/撤消使用链接服务器的权限。您当然可以通过ALTER ANY LINKED SERVER
权限控制更改链接服务器的权限。
明显缺乏权限是因为链接服务器将特定凭据转发到远程服务器,通过模拟或与链接服务器关联的remote_logins设置进行控制。实际访问控制使用与链接服务器关联的凭据在远程服务器上进行。因此,为了拒绝一组用户访问链接服务器,您需要拒绝该组访问远程服务器本身上的远程服务器 。
答案 2 :(得分:0)
身份验证的类型非常重要。当您链接服务器时,他们必须使用Kerberos进行链接,然后您可以控制链接服务器上的访问权限。否则,您的组将始终使用链接中指定的凭据进行身份验证。
答案 3 :(得分:0)
AFACS,链接服务器缺少正确的访问控制。我想做以下事情:
答案 4 :(得分:0)
使用您的事务语句,将其放入SSIS包“ Execute SQL Task”中
在链接服务器安全性属性中,将要访问链接服务器的用户标识(在您的服务器上)以及链接服务器的uid和pw一起添加到顶部,然后单击“不做”单选按钮< / p>
在sql server agent中安排作业时,请选择ssis程序包,并在作业步骤的“运行方式”行中使用代理(db / security / credentials)。