2013-08-30 36 views
2

我有一个SQL Server 2005实例,它有一个到中央数据存储的链接服务器连接。我们的安全团队希望我们的网页使用的帐户不能直接访问该链接的服务器,但我们需要从该链接的服务器连接中提取两列数据。这两部分数据的安全性是可以的,但不希望其余部分可用于网络。可以使用视图来保护链接的服务器吗?

我的问题是这样的:能否创建一个能够获取并返回这两个数据片断的数据,这些数据可以被一个没有源链接服务器权限的帐户执行?

在此先感谢!

编辑:RBarryYoung的回答下面带我走下另一条路,我发现了执行为(http://technet.microsoft.com/en-us/library/ms188354.aspx)。这将允许我创建一个可由网页帐户执行的“接口”存储过程,该存储过程又可以运行存储过程,我想作为有权访问链接服务器的帐户运行。再次感谢大家!

+0

'Execute As'是为用户/会话添加临时访问权限的标准方式。但是,要预先警告,它可能无法与链接服务器一起工作,因为它们会脱离节点/服务器。 SQL Server可能会限制链接服务器访问会话的'Original_Login'值(对不起,我以前做过,但我不记得链接服务器的具体情况)。 – RBarryYoung

+0

感谢您的领导!如果我能够测试这个理论,我会更新。再次感谢! –

回答

0

不,AFAIK,唯一可以通过View实现的安全功能是Owner-Chaining,并且不会通过Linked-Server工作。

我相信你可以这样做与存储过程虽然因为它有更多的安全选项比视图做。

+0

我可能是错的,但不是定义,视图可以被定义为允许读/写访问用户被拒绝访问的数据子集。 – Sonam

+0

@Sonam不,根据定义,View是查询表达式的封装。安全功能(如果有的话)是特定于实现的并由供应商添加。在SQL Server中,可以由View启用的唯一安全访问权限是所有者链接。没有其他机制/语法来指定通过我知道的View的增强访问。如果您知道指定方式,请告诉我们。 – RBarryYoung

+0

好的,谢谢你的详细解释。 – Sonam

相关问题