【问题标题】:How to make your Server as Linked Server for selected views?如何使您的服务器成为选定视图的链接服务器?
【发布时间】:2023-04-02 11:00:01
【问题描述】:

我们有一个 SQL Server 2012 实例,它是我们安全系统的数据库。现在我们有一个场景,我们希望允许我们的 SQL Server 的另一个团队选择某些记录,即我们为他们创建了四个视图以满足他们的要求。

但是,我们不想向他们提供或列出我们所有的表,而只允许这四个视图在我们的系统中查看和查询。当我浏览许多文档时,很明显我们可以通过将 SQL Server 作为链接服务器来做到这一点。

通过链接服务器进行此操作的最佳方式是什么?

【问题讨论】:

    标签: sql sql-server linked-server oledbconnection openquery


    【解决方案1】:

    视图是否在特定模式中? 尝试授予用户对该架构的访问权限,以便他们只能从中读取和查看元数据。

    https://docs.microsoft.com/en-us/sql/relational-databases/security/metadata-visibility-configuration

    【讨论】:

    • 目前我们只有一个架构,所有视图和表都在同一个架构上
    • 架构是最自然的分段访问方式。
    • 所以我们需要创建一个单独的模式并将视图放在那里。
    • 是的,并确保他们只能访问该架构。那是正确的做法,以便您限制对视图的选择权限。我认为它也会限制元信息,但你会看到。
    • 当然。关于链接服务器部分。这种情况下需要吗
    【解决方案2】:

    我们不想向他们提供或列出我们所有的表格,而只是 允许这四个视图在我们的系统中查看和查询。

    您不需要链接服务器来完成此操作。

    您只需授予 SELECT 对这 4 个视图的权限。

    当您在数据库中创建用户并且不授予它任何权限时,它根本看不到任何用户表/视图。它只能查看和查询您将授予权限的对象

    【讨论】:

    • 那么,在什么情况下实现链接服务器?
    • 当您有 2 台服务器并且想要详细说明来自这两台服务器的数据时,会实施链接服务器。即您需要编写查询,例如 select * from server2.RemoteDB.dbo.myRemoteTable join dbo.myLocalTable
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-21
    • 2017-05-12
    • 1970-01-01
    • 1970-01-01
    • 2018-01-13
    • 1970-01-01
    • 2013-08-09
    相关资源
    最近更新 更多