oracle为用户赋予权限中用户x登录下建有一表a,怎么给表a里面的用户b赋予对表a的管理权限

项目经验:oracle中一个用户赋予另外一个用户对表增删改查的权限以及同步更新触发器的创建 - CSDN博客
必须要登录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
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.
WHEN deleting THEN
DELETE temszjcuser.ZX_D_SZJCZJBXX WHERE stcd=:old.ORACLE数据库 两个数据库用户AB,都有表1.怎么使两个数据库中的表1同时变化,即A修改了1,B的1也会变。_百度知道
ORACLE数据库 两个数据库用户AB,都有表1.怎么使两个数据库中的表1同时变化,即A修改了1,B的1也会变。
即用户A 表1
两个数据库中的表1,只要有一个表1的数据发生增加修改删除等操作,另外一个表1也同时发生修改?请把开始写SQL语句到最后实现一步一步写出来。谢谢。 我是菜鸟是用相似词还是用触发器? 用哪个就请把所有步骤写出来? 谢谢。
提问者采纳
你说的这个问题很简单,一般都是采用触发器来实现的。具体实现方式,请参考一下触发器的使用方法。一看就明白。
提问者评价
按照你说的,真的成功了,好开心,谢谢你!
来自团队:
其他类似问题
为您推荐:
oracle数据库的相关知识
其他2条回答
比如create or replace trigger pre_ins_testafter update on a表for each rowbegin
update b 表 set name = :new.name
我a表和 b表名字是一样的。create or replace trigger pre_ins_testafter update on biao1for each rowbegin
update,insert, biao1 set name = :new.name 这个是两个数据库?不用加数据库名字吗?
事务!在一个存储过程中把你要做的操作写完。即修改表1的同时通过dblink修改另一数据库中的表1。然后一次性提交。只管调用这个存储过程就行了。使用存储过程方便以后的管理。
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁视图和表重名怎么办。Oracle 10g数据库,有两个用户A和B。B用户有个表C,A用户有视图D和C表相关。_百度知道
视图和表重名怎么办。Oracle 10g数据库,有两个用户A和B。B用户有个表C,A用户有视图D和C表相关。
A用户有一个以B用户登录的DBLink
E连接到数据库。当A用户使用C@E查询数据时,查询到的是视图还是表?
提问者采纳
当然是表b@e最后会以b账户重新连接数据库
提问者评价
其他类似问题
为您推荐:
其他2条回答
为了数据库的安全性,一般的用户看到的都是 视图。你要看看这两个用户是什么权限了,小兵的帐号,当然只能看到视图了如果是将军的帐号,应该是看到表了!
A用户有访问C表的权限。两个用户的权限都比较大。
如果你使用grant语句赋予了这个用户的select,delete,insert,update的权限的话,那么这个用户是可以访问到表的。这样的话,这个A用户是可以访问表和视图的,都可以访问!
我觉得是表,因为是以B用户登录的
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁}

我要回帖

更多关于 oracle赋予权限 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信