日期:2014-05-17  浏览次数:20565 次

求助,SQL2008中对跨数据库的视图授权访问的问题
同一个数据库服务器,里面有CURR数据库,和HIS数据库,双方表一致,比如都有表A

现在在CURR建立一个视图
CREATE VIEW V_A AS select * from A;

在CURR建立一个用户reader,只授予对V_A的SELECT权限

以上都没有问题,reader只能访问视图,不能访问实际表

好了,现在要建立跨CURR和HIS的视图
在CURR修改这个视图
ALTER VIEW V_A AS select * from HIS.dbo.A UNION ALL select * from A;

发现reader没法进行SELECT * FROM V_A了

请问各位,怎么样实现只允许访问视图,不能访问任何实际表的授权?(跨数据库情况下)

------解决方案--------------------
我想先问一下楼主,在CURR数据库里,reader这个用户是什么角色?也就是说:
实例-》安全性-》登录名-》reader-》属性-》用户映射。与CURR库和HIS库的映射后的用户权限都分别是什么?
------解决方案--------------------
可以试着把reader用户也加入到his中