Ola Chiappa, Na verdade vc entendeu certo.. eu queria saber exatamente isso: se posso dar permissao a um usuario comum para executar um procedure(q foi criado com o usuario e role do administrador da aplicação junto com as tabelas), e esse procedure manipular os dados por meio dos insert´s, selects, e afins, mas o usuario comum não ter privilegio de executar estes mesmos select´s e insert´s diretamente na tabela... Mas pela sua resposta já ficou tudo mais claro... e vamos continuar deixando toda a logica nos procedures mesmo, assim o banco cuida dos dados e a front end soh da apresentação e captura dos mesmos...
Obrigado e abraço, Marcio De: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em nome de jlchiappa Enviada em: quinta-feira, 12 de julho de 2007 16:43 Para: oracle_br@yahoogrupos.com.br Assunto: [oracle_br] Re: duvida sobre permissoes.. Não entendi bem o que seria esse " 'objeto' das tabelas" , mas sim, quando vc cria uma role, se vc der apenas GRANT de execute nas procedures x, y e z para a role, rigorosamente TODOS os usuários de banco que receberem essa role vão poder APENAS e TÃO SOMENTE executarem as procedures x, y e z, sim... Isso (claro) só não vale para o usuário dono das tabelas (que por definição SEMPRE faz o que quiser com elas), E para os usuários com super-privilégios como SELECT ANY, INSERT ANY TABLE e similares (recebidos diretamente ou via outras roles). []s Chiappa --- Em oracle_br@yahoogrupos.com.br <mailto:oracle_br%40yahoogrupos.com.br> , "Marcio T N Ferreira" <[EMAIL PROTECTED]> escreveu > > Colegas, > > Estou com uma duvida teórica, que preciso resolver antes de andar mais com o > desenvolvimento do nossa aplicação... > > Imaginem a seguinte situação: > > > > · Todos os dados desta aplicação estão em um único schema... > > · Todo o modelo de negocio esta traduzido em operações SQL e > distribuídos em function e procedures nos seus respectivos pack´s... > > · Temos 2 roles principais: um de administrador da aplicação e outro > de usuário... > > > > Agora minha duvida: > > Ao desenvolver o front-end, um usuário (com role de usuário) não pode > acessar via select, insert,e afins, a TABLE que contem os dados > diretamente.. ele **DEVE NECESSARIAMENTE** executar um procedure ou > function, que ira perfazer todo o trabalho de manipulação dos dados > propriamente dito. Isso para garantir que por um erro de programação do > front end, não seja feito um insert que não esteja de acordo com o modelo de > negócios. Exemplo: a aplicação não pode executar um insert de na tabela > Tb_fatura... ela deve coletar os dados e chamar um procedure > cria_fatura(dados....)... Garantindo assim que alem de inserir os dados na > tabela de fatura, todos os outros procedimentos relativos a esta fatura > sejam tambem realizados... Ou seja, eu posso definir q o role de usuário não > tenha permissão de insert no objeto das tabelas, e apenas de execute nos > procedures e/ou functions??? > > > > Obrigado a todos, > > Marcio > > > > > > > > > > [As partes desta mensagem que não continham texto foram removidas] > [As partes desta mensagem que não continham texto foram removidas]