oracle怎么多个用户共用一个表空间?

比如: 我在system下创建 表空间t 又创建了两个用户 user1 user2
在创建user1用户的时候我就为 user1用户绑定了表空间t 而user2就没绑定表空间 而两个用户的权限都是dba
我在登陆user1的时候创建了一个表 test
我的查询语句 select * from test;

我在登陆user2的时候去查询 user1的test表
我的查询语句 select * from user1.test;
这都没错。
只是我想不管用什么用户登录 我在查test表的时候 就用这条查询语句
select * from test; 大家有好的解决方案吗?

首先你要明白,你的表都是都是被分在了不同的方案,不是表空间。而每个用户的创建自动回创建对应的方案 这是一一对应的。你用 某一个用户连接,那么自动的就是在这个方案下面。当你以另外的身份连接时,自然要加方案名了。
就像你经常用的 scott 方案下的 emp 你如果用system 连接的话
自然是 打 scott.emp 是吧 就是这个道理。这样的管理机制好的,更加清晰,更加安全哈。也不麻烦 啊 是不是?
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-07-28
create or replace public synonym test for user1.test;

这样就可以满足你的需求,其他用户可以直接select * from test;

你的用户有dba权限,是可以直接建public同义词的。

如果用户没有权限建立public同义词,可以在system下授权:

grant create any synonym to scott;

grant create public synonym to scott;

取消授权:

revoke create any synoym from scott;

revoke create public synoym from scott;

取消同义词:

drop public synonym abc;

授权取消同义词:

grant dorp public synonym to scott;

取消授权:

revoke drop public synonym to scott;
第2个回答  2010-07-28
在user1下执行
grant select on test to user2;

然后建立同义词

方法见:
http://gaowh0208.javaeye.com/blog/506500
第3个回答  2010-07-28
同义词么
相似回答