Pular para o conteúdo

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

#96002
burga
Participante

    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…