ITPub博客

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

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

原创 Oracle 作者:livedba 时间:2011-09-19 09:42:49 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/25261409/viewspace-1055181/ ,如需转载,请注明出处,否则将追究法律责任。

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

注册时间:2011-01-21

  • 博文量
    115
  • 访问量
    483897