Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 是否可以使用视图来保护链接服务器?_Sql Server_Sql Server 2005_Linked Server - Fatal编程技术网

Sql server 是否可以使用视图来保护链接服务器?

Sql server 是否可以使用视图来保护链接服务器?,sql-server,sql-server-2005,linked-server,Sql Server,Sql Server 2005,Linked Server,我有一个SQLServer2005实例,它有一个链接到中央数据存储的服务器连接。我们的安全团队希望网页使用的帐户不能直接访问链接服务器,但我们需要从链接服务器连接中提取两列数据。这两部分数据的安全性是可以接受的,但不希望其余的数据在web上可用 我的问题是:是否可以创建一个视图,该视图能够获取并返回这两条数据,这两条数据可以由缺乏对源链接服务器权限的帐户执行 提前谢谢 编辑:下面RBarryYoung的回答引导我走上另一条路,在那里我发现了executeas()。这将允许我创建一个可由web页面

我有一个SQLServer2005实例,它有一个链接到中央数据存储的服务器连接。我们的安全团队希望网页使用的帐户不能直接访问链接服务器,但我们需要从链接服务器连接中提取两列数据。这两部分数据的安全性是可以接受的,但不希望其余的数据在web上可用

我的问题是:是否可以创建一个视图,该视图能够获取并返回这两条数据,这两条数据可以由缺乏对源链接服务器权限的帐户执行

提前谢谢


编辑:下面RBarryYoung的回答引导我走上另一条路,在那里我发现了executeas()。这将允许我创建一个可由web页面帐户执行的“接口”存储过程,该存储过程反过来可以运行我希望作为具有链接服务器权限的帐户运行的存储过程。再次感谢大家

不,好吧,通过视图可以实现的唯一安全性启用是所有者链接,它不会通过链接服务器工作


我相信您可以用存储过程来实现这一点,因为它比视图有更多的安全选项。

我可能错了,但根据定义,视图可以定义为允许对数据子集进行读/写访问,否则用户将被拒绝访问该数据子集。@SOAM否,根据定义,视图是查询表达式的封装。安全功能(如果有)是特定于实现的,由供应商添加。在SQL Server中,视图可以启用的唯一安全访问是所有者链接。据我所知,没有其他机制/语法可以通过视图指定增强访问。如果您知道一种指定它的方法,请告诉我们。好的,谢谢您的详细解释。似乎您在这一点上是正确的,这是不可能的,但是您关于使用存储过程执行此操作的评论使我走上了另一条路,我将在上面的问题中添加一个编辑。谢谢
executeas
是向用户/会话添加临时访问权限的标准方法。但是,需要预先警告的是,它可能不适用于链接服务器,因为它们脱离了节点/服务器。SQL Server可能会将链接服务器的访问限制为会话的“原始登录”值(抱歉,我以前做过,但我记不起链接服务器的详细信息)。谢谢提醒!如果我能验证这个理论,我会更新的。再次感谢!