比如: 我在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 是吧 就是这个道理。这样的管理机制好的,更加清晰,更加安全哈。也不麻烦 啊 是不是?
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;