同义词
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,所以视图授权访问的话
所以: 只要视图直接授权不报错,就可以访问视图 ,不需要把视图里的基表权限再授给用户
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 |
所以: 只要视图直接授权不报错,就可以访问视图 ,不需要把视图里的基表权限再授给用户
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/30126024/viewspace-2129460/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/30126024/viewspace-2129460/