0

您好,感谢您的宝贵时间,

我正在使用 sql 2008 我创建了一个没有任何相关性的数据库。在这里我想添加访问其他数据库的视图。然后,我将向数据库添加一个没有相关性的用户并授予对视图的访问权限。

我明显的问题是,当用户尝试运行视图时,会在他们无权查看信息的情况下发生错误。(当我使用管理员类型用户时,我可以访问视图并查看结果没问题)

我可以为两个单独的数据库上的所有 SELECT 创建视图权限,以便用户可以看到结果。或者用户是否需要对所有查询的表的读取权限。

再次感谢你。

这就是我尝试过的(还有很多其他的,但它没有用)

USE no-relevance-server
GRANT REFERENCES ON OBJECT[important-server::dbo.table] TO [the view]
4

1 回答 1

2

您的问题是跨数据库所有权链之一

您可以按照http://support.microsoft.com/kb/810474上的说明使其工作

EXEC sp_configure 'Cross DB Ownership Chaining', '1'; RECONFIGURE 
EXEC sp_dboption 'YourDatabase', 'db chaining', 'true'

但请务必阅读Cross Database Ownership Chaining相关风险。

http://msdn.microsoft.com/en-us/library/ms188676.aspx

于 2012-09-26T15:30:28.200 回答