读书人

新手有关问题关于用户权限

发布时间: 2012-09-09 09:27:54 作者: rapoo

新手问题,关于用户权限
大家好,刚使用Oracle,有个问题,我有两个用户,user1和user2,
在user1下,已经给user2分配权限grang select any table to user2,
但在user2下,查表时,一定得select * from user1.tab1这种形式吗,
不能直接select * from tab1吗,请问各位大侠帮忙,
最好有人能介绍下oracle用户,scheme,实体间权限的用法,禁忌!!等等

[解决办法]
因表是於user1的,因此你需要,你也可以建立同,然後就可以直接了,如

SQL code
create synonym tab1 for user1.tab1;--建好已後,用user2就可以直接了select * from tab1
[解决办法]
不能直接select * from tab1,
必须select * from user1.tab1.

如果一定需要这样,
首先sys登陆,
sqlplus / as sysdba
赋予user1 create public synonym权限。
grant create public synonym to user1;

然后user1登陆
sqlplus user1/password
创建public synonym
create public synonym tab1 for tab1;
grant select on tab1 to user2;

然后user2登陆
select * from tab1;
[解决办法]
你的这个问题是有关Oracle用户模式的问题~

user1创建的表是属于user1的模式的,其它的用户想要查询user1创建的表,是要明确表是在user1模式下面的,也就是user1.tab1

当然,楼上的几位也说了可以定义同义词,来方便使用其它用户模式下面的表。

读书人网 >oracle

热点推荐