用户A拥有表a,现在用户A给用户B赋表a的查询权限,之后可以采取以下方式建立同义词:
方式一、在A用户下,执行create synonym B.a for a;
方式二、在B用户下,执行create synonym a for A.a; 请问下,这两个有什么区别呢?
方式一、在A用户下,执行create synonym B.a for a;
方式二、在B用户下,执行create synonym a for A.a; 请问下,这两个有什么区别呢?
其实意思是没什么好大的区别,有点多余.
在A用户下,执行create synonym B.a for a; 这个在A下为表a建的同义词为B.a
以后访问就可以这样 select * from B.a,但是我觉得很多余
直接是grant select on table to B
create synonym a for a 就可以了
在用户B下 select * from a
方式二、在B用户下,执行create synonym a for A.a;--创建同义词为a
表面上看就是在不同用户下
create synonym B.a for a;
create synonym a for A.a; for后面的对象区别 与同义词的名称的区别
是一样的,都是为B用户建一个名称a的同义词,这个同义词引用A.a表
创建同义词有2个好处,1,不让A用户看到B用户的对象。2,就是规范sql脚本,方便维护。方式一、在A用户下,执行create synonym B.a for a;
就是在用户A下面 ,创建一个同义词,名字为a,指向B用户下面的表a,查询的时候 select * from a 即可。
方式二、在B用户下,执行create synonym a for A.a;
在B用户下面,创建一个同义词名字叫A.a,指向B用户下面的表a。
在B用户下,查询时候,用 select * from a 即可。