17,086
社区成员
发帖
与我相关
我的任务
分享
--只能采用公有同义词的方式(public synonym),你必须给B用户create public synonym的权限
----或者采用其他大权限用户如 sys system 创建相关的同义词,同时将B用户下表的查询权限付给相应用户
--如:
[SYS@myoracle] SQL>create user test identified by test;
用户已创建。
[SYS@myoracle] SQL>grant connect ,resource to test;
授权成功。
[SYS@myoracle] SQL>create user test1 identified by test1;
用户已创建。
[SYS@myoracle] SQL>grant connect ,resource to test1;
授权成功。
[SYS@myoracle] SQL>conn test1/test1
已连接。
[TEST1@myoracle] SQL>create table t1(id int);
表已创建。
[TEST1@myoracle] SQL>conn test/test
已连接。
[TEST@myoracle] SQL>select * from test1.t1;
select * from test1.t1
*
第 1 行出现错误:
ORA-00942: 表或视图不存在
[TEST@myoracle] SQL>conn / as sysdba
已连接。
[SYS@myoracle] SQL>create public synonym t1 for test1.t1;
同义词已创建。
[SYS@myoracle] SQL>conn test/test
已连接。
[TEST@myoracle] SQL>select * from t1;
select * from t1
*
第 1 行出现错误:
ORA-00942: 表或视图不存在
[TEST@myoracle] SQL>conn test1/test1
已连接。
[TEST1@myoracle] SQL>grant select on t1 to test;
授权成功。
[TEST1@myoracle] SQL>conn test/test
已连接。
[TEST@myoracle] SQL>select * from tab;
未选定行
[TEST@myoracle] SQL>select * from t1;
未选定行
[TEST@myoracle] SQL>desc t1;
名称 是否为空? 类型
----------------------------------------- -------- ----------------------------
ID NUMBER(38)
[TEST@myoracle] SQL>
grant create any synonym to B;