AUTHID DEFINER/CURRENT_USER

Dúvidas, dicas e truques de PL/SQL. Aqui também vão assuntos relacionados a pacotes, triggers, funções, Java-Stored Procedures, etc
Responder
ramonsales
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 7
Registrado em: Ter, 02 Set 2008 11:27 am
Localização: Bragança Paulista - SP
Ramon Sales

E aí galera, blza?

Estou com uma dúvida na questão de criação de uma procedure. Existem as opções:

Selecionar tudo

AUTHID DEFINER
AUTHID CURRENT_USER
Pesquisando pude entender que a primeira opção roda usando privilégios do criador da procedure e a segunda é que roda com os privilégios do usuário que está usando.....seria isto mesmo? Se for isto, alguém pode por favor me dar um exemplo prático disto, porque com estas definições não pude entender claramente o que cada um destes fazem na hora da execução da procedure.

muito obrigado.
joaogarcia
Rank: Analista Júnior
Rank: Analista Júnior
Mensagens: 91
Registrado em: Ter, 20 Mar 2007 7:19 pm
Localização: Campinas - SP
Contato:
Cordialmente,
João C. Garcia

Cara, nunca testei isso aí na prática, mas vou tentar explicar...

Imagine uma procedure que em seu código faça um insert na tabela A e que ela foi criada pelo usuário A com AUTHID sendo DEFINER (comportamento padrão).

Para que o usuário B consiga executar esta procedure, basta conceder a ele somente privilégio de EXECUTE nesta procedure. Ele não precisa de privilégios na tabela A.

Porém, se o usuário A tivesse criado esta procedure com AUTHID sendo CURRENT_USER, então o usuário B precisaria de privilégios na tabela A, já que dentro do código existe um insert nesta tabela.

Se alguém souber explicar melhor, poste aí.
ramonsales
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 7
Registrado em: Ter, 02 Set 2008 11:27 am
Localização: Bragança Paulista - SP
Ramon Sales

vlw cara, eu conseguir entender sim agora...muito obrigado !!!
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 7 visitantes