炫意html5
最早CSS3和HTML5移动技术网站之一

请问sql server里的视图和存储过程,如何根据不同用户,访问不同schema的表

假设数据库Test
存在三个schema(System,S1, S2); 其中s1和S2这两个Schema各有一个对应业务表(S1.Order, S2.Order)
同时,数据库里面建了用户: UserS1, 设置了Schema owned(System, s1), 同时指定了默认schema为S1
接着创建一个登陆账号:LoginS1, 关联至UserS1

当我用LoginS1登陆(即UserS1),这时在查询分询器执行:
select * from Order –这里能正常查询S1.Order

但当我创建视图
Create view System.VOrder_Get
as
select * from Order –当编译时,提示无效对象名 ‘Order’

同样的,存储过程
Create proc System.POrder_Get
as
begin
select * from Order –能编译通过
end

但当我执行 exec System.POrder_Get, 则也是提示无效对象名 ‘Order’

我希望当我用UserS1访问视图和存储过程时,实际也是访问的S1.Order

即我的需求是:业务表,如Order,有不同的Schema,但是视图,存储过程,我是希望只维护一套(不用建立不同schema:s1, s2)。

请问该如何实现,谢谢!

回答

炫意HTML5 » 请问sql server里的视图和存储过程,如何根据不同用户,访问不同schema的表

Java基础教程Android基础教程