我这里有2个模式,schema1和schema2。我已经从schema1中的表在schema2中创建了一个视图。现在,我已授予对schema2的组的访问权限,但他们无法访问该视图。
这是我用来授予访问权限的查询。
grant select on all tables in schema schema2 to group viewusers_ro;
视图:
create view schema2.view as select col1, col2,col3 from schema1.table;
用户尝试访问
select * from schema2.view
错误是:拒绝架构schema1的权限
注意:由于我们创建的视图仅包含该表的几列,因此我们不允许用户访问该表。
请帮助我获得所需的访问权限
答案 0 :(得分:0)
您还需要授予对schema2的使用权限
grant usage on schema schema2 to group viewusers_ro;
答案 1 :(得分:0)
您需要对schema1进行高级访问。即使视图位于schema2中,因为视图引用了schema1,Redshift也希望在基础对象所在的模式中使用它。不幸的是,这使得发生了一个错误的选择授予的情况,即从打开schema1到您的viewusers_ro组,是Redshift的运作方式。