› Fóruns › Banco de dados Oracle › Grant para uma trigger especifica de um usuário – banco 9i › Grant para uma trigger especifica de um usuário – banco 9i
Sobre a trigger de DDL que o pessoal está falando, seria mais ou menos assim:
GRANT ALTER ANY TRIGGER TO SEU_USUARIO;
GRANT CREATE ANY TRIGGER TO SEU_USUARIO;
create or replace
TRIGGER "SYS"."NOME_DA_TRIGGER"
BEFORE DDL ON DATABASE
BEGIN
IF (ora_login_user IN ('SEU_USUARIO') AND ora_login_user != ora_dict_obj_owner)
THEN
IF (ora_sysevent IN ('CREATE','ALTER') AND (ora_dict_obj_type NOT IN ('TRIGGER') OR ora_dict_obj_owner NOT IN ('ESQUEMA_DA_TRIGGER')))
THEN
RAISE_APPLICATION_ERROR(-20000, 'Usuário não tem permissão para realizar esta operação');
END IF;
END IF;
END;
/
Mas é bom testar porque eu fiz às pressas e não testei aqui, pode ter algum errinho na lógica, mas o caminho é esse aí… Eu uso este tipo de trigger mais pra gerar um histórico das DDLs executadas no banco, nunca usei para este tipo de problema…