您的位置:首页 > 数据库 > Oracle

项目经验:oracle中一个用户赋予另外一个用户对表增删改查的权限以及同步更新触发器的创建

2014-09-12 10:31 1836 查看
必须要登录oracle的超级管理员才能赋权限:

我在项目中用的超级管理员设计到安全性  就不在这写出来

赋值语句如下:

grant delete on temszjcuser.ZX_D_SZJCZJBXX TO szjcuser
grant insert on temszjcuser.ZX_D_SZJCZJBXX TO szjcuser
grant update on temszjcuser.ZX_D_SZJCZJBXX TO szjcuser


这里面把temszjcuser中的对ZX_D_SZJCZJBXX这张表的删除、插入、更新权限赋给了szjcuser 是为了下一步在szjcuser下建立触发器,同步更新到temszjcuser.ZX_D_SZJCZJBXX做准备

退出超级管理用户,登录szjcuser用户,执行写好的创建触发器的sql语句,如下:

CREATE OR REPLACE TRIGGER ZX_D_SZJCZJBXX_TRIGGER
AFTER INSERT OR UPDATE OR DELETE ON szjcuser.ZX_D_SZJCZJBXX FOR EACH ROW
BEGIN
CASE
WHEN inserting THEN
INSERT IntO temszjcuser.ZX_D_SZJCZJBXX(stcd,czmc,islsjc,czdj,jcfs,lgtd,lttd,zz,addvcd,qdbm,wrrcd,gldw,jcdw,jzny,czny,cjsj,scxgsj,nt,zdfl,sortid,JCHD,ZQSJL,KSJCSJ,ZZJCSJ,CX,CYD,CYQHCYFF,QDHL,WRYPF)
VALUES(:NEW.stcd,:NEW.czmc,:NEW.islsjc,:NEW.czdj,:NEW.jcfs,:NEW.lgtd,:NEW.lttd,:NEW.zz,:NEW.addvcd,:NEW.qdbm,:NEW.wrrcd,:NEW.gldw,:NEW.jcdw,:NEW.jzny,:NEW.czny,:NEW.cjsj,:NEW.scxgsj,:NEW.nt,:NEW.zdfl,:NEW.sortid,:NEW.JCHD,:NEW.ZQSJL,:NEW.KSJCSJ,:NEW.ZZJCSJ,:NEW.CX,:NEW.CYD,:NEW.CYQHCYFF,:NEW.QDHL,:NEW.WRYPF);
WHEN updating THEN
UPDATE temszjcuser.ZX_D_SZJCZJBXX SET czmc=:NEW.czmc,islsjc=:NEW.islsjc,czdj=:NEW.czdj,jcfs=:NEW.jcfs,lgtd=:NEW.lgtd,lttd=:NEW.lttd,zz=:NEW.zz,addvcd=:NEW.addvcd,qdbm=:NEW.qdbm,wrrcd=:NEW.wrrcd,gldw=:NEW.gldw,jcdw=:NEW.jcdw,jzny=:NEW.jzny,czny=:NEW.czny,cjsj=:NEW.cjsj,scxgsj=:NEW.scxgsj,nt=:NEW.nt,zdfl=:NEW.zdfl,sortid=:NEW.sortid,JCHD=:NEW.JCHD,ZQSJL=:NEW.ZQSJL,KSJCSJ=:NEW.KSJCSJ,ZZJCSJ=:NEW.ZZJCSJ,CX=:NEW.CX,CYD=:NEW.CYD,CYQHCYFF=:NEW.CYQHCYFF,QDHL=:NEW.QDHL,WRYPF=:NEW.WRYPF WHERE stcd=:old.stcd;
WHEN deleting THEN
DELETE temszjcuser.ZX_D_SZJCZJBXX WHERE stcd=:old.stcd;
END CASE;
END;


 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: