在大型项目的数据管理中,数据库的安全隐患非常大,既要允许开发人员能够登陆数据库,查询数据,但是又不能对表进行删除,修改权限。针对这种情况有两种解决方案:
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博客 ” ,链接:http://blog.itpub.net/25261409/viewspace-1055181/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/25261409/viewspace-1055181/