oracle关于同一表空间下的不同用户查询问题

我建了一个表空间如YBT然后在这个表空间上建了一个用户如LIS给LIS授DBA和CONNECT角色然后用LIS用户登陆,并导入了一些表和数据。然后在YBT表空间我又建立了... 我建了一个表空间 如YBT
然后在这个表空间上建了一个用户 如 LIS
给LIS授DBA和CONNECT角色
然后用LIS用户登陆,并导入了一些表和数据。
然后在YBT表空间我又建立了一用户 GUEST
授予DBA和CONNECT角色
我用GUEST用户登陆的时候怎样才可以查询到LIS用户的数据?
当然了,也可以通过select * from lis.table1来查询;
但我不想每次查询都带上lis.的标签.
gg152326的答案比较接近
就是说
用DBA的身份登陆然后执行
create or replace synonym guest.lccont for lis.lccont;
这样用guest登陆执行select * from lccont
就可以查询到lis的lccont表,
但是有个问题就是如果lis用户中表非常多,更新也很快,那么同步起来非常困难。

另外,怎么一次性把所有表都同义过来,
如lis.lccont --> guest.lccont
lis.lbcont --> guest.lbcont
lis.lacom --> guest.lacom

再一问题就是,如果guest表中已经有lbcont这个表了,
再执行create or replace synonym guest.lbcont for lis.lbcont;就报错了。

cyy082666 回答非常好。
就是5,如果每次都得拷贝查询结果然后再执行比较麻烦。
有没有一步到位的
展开
 我来答
cyy082666
推荐于2016-01-17 · TA获得超过1295个赞
知道小有建树答主
回答量:323
采纳率:0%
帮助的人:0
展开全部
1. 你概念没对,不是在表空间上建用户,而是允许用户使用哪个表空间。

2. 你权限没弄对,DBA是最高权限,已经包括connect了。有了DBA权限,整个数据库你就随便搞了。

3. 想查询就通过通过select * from lis.table1来查询。不想总是写一个lis.就建立同义词。

4. 你都有dba权限了,可以建public同义词。这样你的任何用户都可以不用Lis.直接访问那个表了。
select * from table1
但是如果你当前的用户下有同名的表,那么这句话访问的就是你当前用户下的表。一般不要建public,下面这是私有的。
创建方法:
create synonym guest.lccont for lis.lccont

5. 怎么全部重建。这个问题很简单,你拼一个赋权语句就可以了。
select 'create synonym '||table_name||' for lis.'||table_name||';' from dba_tables where owner='LIS';

你把上面这句话的执行结果拷贝出来,执行一遍就全建完了。如果你会不停的创建表,你干脆写个批处理让它自己跑好了。

6. 再一问题就是,如果guest表中已经有lbcont这个表了,
再执行create or replace synonym guest.lbcont for lis.lbcont;就报错了。

那当然了,要不然重名了,你访问这个表的时候怎么知道你访问的是这个表还是同义词。
这个问题无解。
除非建public同义词,那样再访问的话访问的就是你当前用户下的表,而非同义词。

补充:
2搂没对,同义词关db link 什么事?
百度网友65b39fc
2009-01-14 · TA获得超过117个赞
知道小有建树答主
回答量:287
采纳率:0%
帮助的人:114万
展开全部
在lis用户下,对guest可以访问的表附select权限
grant select on lccont to GUEST
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友9152734da
2009-01-12 · TA获得超过172个赞
知道小有建树答主
回答量:249
采纳率:0%
帮助的人:136万
展开全部
使用SYNONYMS(同义名)
create or replace public synonym MYTABLE
for PE_DEMO.DDA;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2009-01-13
展开全部
3楼的回答非常好! 学习。收藏之。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
qweapeed
2009-01-12 · 超过10用户采纳过TA的回答
知道答主
回答量:24
采纳率:0%
帮助的人:10.9万
展开全部
建一个database link后再建个同义词不行吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式