Oracle触发器之——同一表空间下的不同用户

来源:互联网 发布:软件如何脱壳 编辑:程序博客网 时间:2024/05/17 21:44

统一表空间不同用户下书写触发器或者查询等操作,主要的是权限问题的解决。
下面主要对权限问题进行说明:

1、触发器引用表:
 触发器引用表时,它使用表创建者的组成员资格找到未指定的显示所有者下的表。例如,如果user_1.table_a上的触发器引用table_b,并且没有指定table_b的所有者,那么table_b就必须是由user_1创建的表,或者user_1必须是能访问到的,或者说是能够作为table_b的所有者身份来出现。如果连一种条件都不满足,那么,拜拜,没得玩了,当你执行触发器时,会出现找不到表或视图的错误提示信息。


2、上面出现的问题,归根揭底,是没有操作表的权限的问题。那么如何来让它拥有这个权力呢?我们可以这样做:

需要授予权限的方面较多,这里只针对用户对表的增、删、改、查,进行权限的设置,主要格式如下:

GRENT 权限 ON 表名 TO 用户名;

e.g GRENT insert ON table_1 TO user_1;   --给予追加操作的权力


3、授权情况解释:

如果在user_1用户的‘table_1’表上的触发器中对user_2用户中的‘table_2’表进行引用,执行增、删、改的操作,那么就需要user_2用户给予user_1用户‘table_2’的相应的权限,(登陆user_2用户,执行GRENT insert ON table_2 TO user_1;即需要user_2用户给予user_1用户table_2的权限。).

反之亦然,。



1 0