ITPub博客

首页 > 数据库 > Oracle > Oracle-禁止用户对自己的表执行drop,alter操作

Oracle-禁止用户对自己的表执行drop,alter操作

Oracle 作者:pooldb 时间:2016-06-30 16:27:52 0 删除 编辑

在大型项目的数据管理中,数据库的安全隐患非常大,既要允许开发人员能够登陆数据库,查询数据,但是又不能对表进行删除,修改权限。针对这种情况有两种解决方案:

1.在sys用户建立触发器,不允许用户删除和修改表。

2.建立B用户,给B用户对A用户表的insert,update权限,不给其他权限。

这里先说下1的实现:

[@more@]

CREATE OR REPLACE TRIGGER T_TEST
BEFORE DROP OR ALTER ON database
DECLARE
BEGIN
IF ora_dict_obj_owner = 'TEST' AND ora_sysevent = 'DROP' THEN
raise_application_error(-20002,'不允许删除对象');
ELSIF ora_dict_obj_owner = 'TEST' AND ora_sysevent = 'ALTER' THEN
RAISE_APPLICATION_ERROR(-20001,'不允许修改对象结构');
END IF;

END;

这个是在sys用户下建立触发器,如果在用户下建立database
要换成schema

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/30074459/viewspace-2121269/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2014-12-22

  • 博文量
    404
  • 访问量
    296519