SQL是否可以授予视图权限而不是用户访问其他数据库?

时间:2012-09-26 15:23:42

标签: sql sql-server-2008

您好,感谢您的时间,

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

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

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

再次感谢你。

这是我尝试的(以及其他许多但它没有用)

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

1 个答案:

答案 0 :(得分: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