『ORACLE』收回用户alter和drop权限的触发器(11g)

CREATE OR REPLACE TRIGGER TRI_RVK_PRIV
  BEFORE DROP OR ALTER ON database
DECLARE
BEGIN
  IF ORA_LOGIN_USER IN ('SCOTT',
                        'HR',
                        'ENMO',
                        'DBATEST',
                        'YUNHE') AND ora_sysevent = 'DROP' THEN
    raise_application_error(-20002, '不允许删除对象');
  ELSIF ORA_LOGIN_USER IN ('SCOTT',
                           'HR',
                           'ENMO',
                           'DBATEST',
                           'YUNHE') AND ora_sysevent = 'ALTER' THEN
    RAISE_APPLICATION_ERROR(-20001, '不允许修改对象结构');
  ELSE
    NULL;
  END IF;
END;
/

你可能感兴趣的:(PLSQL,日常管理)