您好,感谢您的时间,
我正在使用sql 2008 我创建了一个没有任何相关性的数据库。这里我想添加访问其他数据库的视图。然后,我将向db添加一个没有相关性的用户,并授予对该视图的访问权限。
我明显的问题是,当用户尝试运行视图时,如果他们没有查看信息的权限,就会发生错误。 (当我使用管理员类型用户时,我可以访问视图并看到结果没有问题)
我是否可以在两个单独的数据库上为所有SELECT创建视图权限,以便用户可以看到结果。或者用户是否需要对查询的所有表的读取权限。
再次感谢你。
这是我尝试的(以及其他许多但它没有用)
USE no-relevance-server
GRANT REFERENCES ON OBJECT[important-server::dbo.table] TO [the view]
答案 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
及相关风险。