SYNONYM、视图的权限问题

同义词
B创建同义词(不做grant select on A.table1 to B,创建同义词不报错,但是B访问这个同义词会报错,这个同义词实际没有script )
create synonym syb1 for A.table1

以下B.syb1就是个同义词,来自真实的表A.table1(必须做grant select on A.table1 to B  with grant option,如果不做下面授权会报错

grant select on B.syb1 to C

目前发现C的权限其实也来自A,而不是B
grantee  owner   table_name   grantor  privilege   grantable  hierarchy
C       A     TABLE1      A     SELECT      NO        NO

如果C也创建一个同义词,create syc1 table1 for B.syb1
发现C.syc1的script不是来自B.syb1,而是来自A.table1


视图
B创建视图(不做grant select on A.table1\A.table2 to B,无法创建视图成功 )
create view viewb as select * from A.table1,A.table2

以下B.viewb就是个视图,数据来自真实的表A.table1\A.table2(之前做过grant select on A.table1\A.table2 to B with grant option的,如果不做下面授权会报错)
grant select on B.viewb to C

发现C的权限来自B,而不是A,所以视图授权访问的话
GRANTEE OWNER TABLE_NAME GRANTOR PRIVILEGE GRANTABLE HIERARCHY
C B VIEWB B SELECT NO NO

所以:只要视图直接授权不报错,就可以访问视图,不需要把视图里的基表权限再授给用户

请使用浏览器的分享功能分享到微信等