在SQL Server 2008中,假设您有多个具有相同定义的表(尽管不是相同的数据),每个表都在不同的模式中,并由单独的SQL Server用户拥有:
schema1.People
schema2.People
schema3.People
...
为另一个用户(通常意义上使用数据库,不一定是SQL Server用户对象)提供访问这些模式的任意子集的所有模式中所有人员的单个列表的最佳设计是什么?他有权访问?
答案 0 :(得分:1)
创建一个视图,比如AllPeople,它可能是三个模式表的联合。
不确定我是否理解正确。如果您正在寻找动态方法,这显然不起作用。
但如果没有,你可以说
create view AllPeople as
select * from schema1.people
union
select * from schema2.people
union
select * from schema3.people
当然,创建视图的人和阅读视图的人都需要有足够的权限来执行此操作。