Então Chiappa, o uso de INVOKER RIGHTS não é para eu executar o corpo da
procedure com as permissões do usuário logado e não com usuário que eh o
owner da procedure??

 Por default ele pega as permissões do owner.. 

 

Tem alguma forma de eu habilitar para que os grants das roles funcionem como
explícitos???

 

Bom o site que vi que isso era um bug é esse aqui:

http://www.imasters.com.br/forum/lofiversion/index.php/t206115.html

 

 

atenciosamente, 

 

 

Renan Nucci

Desenvolvedor C#

CSM Software

Msn: [EMAIL PROTECTED]

 

De: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em
nome de jlchiappa
Enviada em: sexta-feira, 20 de julho de 2007 18:24
Para: oracle_br@yahoogrupos.com.br
Assunto: Re: RES: RES: [oracle_br] Conceder permissao a todos objetod de UM
schema

 

Renan, obviamente o .BAT *** não "sabe" *** nada vezes nada a respeito
de linguagem SQL, de PL/SQL, de banco, ele NÂO é parte do banco nem
foi feito pela Oracle... Só o que ele "sabe" é processar comandos
próprios e/ou chamar executáveis, o que ocorre é que quem SABE
executar SQLs e PL/SQLs é o sql*plus, que é SIm um programa executável
e portanto pode ser executado a partir do >BAT... A sequ~encia
portanto é o .BAT chama o sqlplus que executa a tua rotina , ok ? Isso
eu cito como complemento do seu conhecimento, já que vc não vai usar o
>BAT , pelo que diz, então tá...
No caso de procedure, rigorosamente NÂO, esse comportamento NÃO É
BUG, é o comportamento default DOCUMENTADO NO MANUAL DE
DESENVOLVEDORES, como citado em
http://asktom.oracle.com/tkyte/Misc/RolesAndProcedures.html, quem te
falou que é bUG falou uma asneira sem tamanho... Diga aí que site que
é esse, que a gente já marca como fonte de DESinformação... Como
citado no link, o fato é que no default quando vc cria um stored
PL/SQL (seja procedure, function, package ou trigger) as roles são
DESABILITADAS durante a execução, o GRANT precisar ser direto, OU em
alguns casos vc pode mudar o default da identificação de privs dentro
do seu stored PL/SQL, veja no manual de PL/SQL sobre INVOKER RIGHTS.

[]s

Chiappa
--- Em oracle_br@yahoogrupos.com.br <mailto:oracle_br%40yahoogrupos.com.br>
, "Renan Nucci - CSM Software"
<[EMAIL PROTECTED]> escreveu
>
> Clayton, o bat eu sei fazer, o q não sei eh fazer a chamada a ele
sem ser
> pelo SQL plus... mas acho q não vou precisar fazer o bat.. 
> 
> 
> 
> Chiappa, essa solucao que vc me ofereceu eu estava escrevendo ela
quando vc
> mando... pelo menos estou pensando como os grandes.. RSS
> 
> 
> 
> Agora estou me deparando com um problema de privilégios.. 
> 
> Eu executando esse GRANT dentro da procedure eu recebo uma mensagem
de erro
> alegando privilégios insuficientes, mas executando por fora dela eu
consigo
> na boa... Este teste estou fazendo com o usuário que eh dono da
procedure.. 
> 
> 
> 
> Andei vendo sobre este erro e vi um site dizendo que eh um bug do
Oracle,
> que não reconhece as permissões vindas de um role e somente as
explicitas ao
> user.. isso se confirma??
> 
> 
> 
> 
> 
> atenciosamente, 
> 
> 
> 
> 
> 
> Renan Nucci
> 
> Desenvolvedor C#
> 
> CSM Software
> 
> Msn: [EMAIL PROTECTED]
> 
> 
> 
> De: oracle_br@yahoogrupos.com.br <mailto:oracle_br%40yahoogrupos.com.br> 
[mailto:oracle_br@yahoogrupos.com.br <mailto:oracle_br%40yahoogrupos.com.br>
] Em
> nome de Clayton Rocha
> Enviada em: sexta-feira, 20 de julho de 2007 14:57
> Para: oracle_br@yahoogrupos.com.br <mailto:oracle_br%40yahoogrupos.com.br>

> Assunto: RES: RES: [oracle_br] Conceder permissao a todos objetod de UM
> schema
> 
> 
> 
> O que você pode fazer é um arquivo BAT que executa automaticamente esse
> script... te resolve a situação? Sabe fazer? Quer ajuda?
> 
> []'s
> 
> Clayton
> 
> De: oracle_br@yahoogrupos.com.br <mailto:oracle_br%40yahoogrupos.com.br>
<mailto:oracle_br%40yahoogrupos.com.br>
> [mailto:oracle_br@yahoogrupos.com.br
<mailto:oracle_br%40yahoogrupos.com.br> 
<mailto:oracle_br%40yahoogrupos.com.br>
> ] Em
> nome de Renan Nucci - CSM Software
> Enviada em: sexta-feira, 20 de julho de 2007 14:35
> Para: oracle_br@yahoogrupos.com.br <mailto:oracle_br%40yahoogrupos.com.br>

<mailto:oracle_br%40yahoogrupos.com.br> 
> Assunto: RES: RES: [oracle_br] Conceder permissao a todos objetod de UM
> schema
> 
> Eu não tinha conhecimento dos comandos que me foi passado tive de
dar uma
> pesquisada para ver o que fazem.. 
> 
> Eu só consigo executar esse procedimento via SQL Plus? Não tem outra
forma
> de adicionarmos permissão para um schema inteiro então?
> 
> atenciosamente, 
> 
> Renan Nucci
> 
> Desenvolvedor C#
> 
> CSM Software
> 
> Msn: [EMAIL PROTECTED] <mailto:renanxr3%40hotmail.com>
> <mailto:renanxr3%40hotmail.com> 
> 
> De: oracle_br@yahoogrupos.com.br <mailto:oracle_br%40yahoogrupos.com.br>
<mailto:oracle_br%40yahoogrupos.com.br>
> <mailto:oracle_br%40yahoogrupos.com.br>
> [mailto:oracle_br@yahoogrupos.com.br
<mailto:oracle_br%40yahoogrupos.com.br> 
<mailto:oracle_br%40yahoogrupos.com.br>
> <mailto:oracle_br%40yahoogrupos.com.br>
> ] Em
> nome de jlchiappa
> Enviada em: sexta-feira, 20 de julho de 2007 13:12
> Para: oracle_br@yahoogrupos.com.br <mailto:oracle_br%40yahoogrupos.com.br>

<mailto:oracle_br%40yahoogrupos.com.br>
> <mailto:oracle_br%40yahoogrupos.com.br> 
> Assunto: Re: RES: [oracle_br] Conceder permissao a todos objetod de UM
> schema
> 
> Renan, ** TUDO ** que a gente te passou foi (claro) pra ser executado 
> NO SQLPLUS, apenas O SQLPLUS é que possui comandos de SPOOL, @ e 
> quetais , só "jogar script" lógico que não funcionará.... Se vc 
> quiser executar dentro de procedure (o que imho não faz lá muito 
> sentido, já que tipicamente num bd Produção é o DBA quem executa 
> rotinas do tipo, e ele sempre tem o plus na mão mas enfim), sim, vc 
> teria que executar via SQL dinâmico (com EXECUTE IMMEDIATE ou 
> DBMS_SQL) ao invés de gerar arquivo, o PL/SQL ** não tem ** suporte à 
> DDL nativamente, como registrado no manual de utilização PL/SQL.
> 
> []s
> 
> Chiappa
> 
> --- Em oracle_br@yahoogrupos.com.br
<mailto:oracle_br%40yahoogrupos.com.br> 
<mailto:oracle_br%40yahoogrupos.com.br>
> <mailto:oracle_br%40yahoogrupos.com.br>
> <mailto:oracle_br%40yahoogrupos.com.br>
> , "Renan Nucci - CSM Software" 
> <nucci.csm@> escreveu
> >
> > Agradeço as respostas dos amigos,, testei aqui e era isso 
> exatamente issu
> > que precisava.
> > 
> > Agora só uma coisa, eu tenho de rodar esse script em uma sp, tem 
> algum
> > segredo? Pois esta dando erro na primeira linha 
> > 
> > 
> > 
> > PLS-00103: Encontrado o símbolo "GRANT" quando um dos seguintes
> > 
> > símbolos era esperado:
> > 
> > := . ( @ % ;
> > 
> > 
> > 
> > Eu apenas joguei o script dentro da sp.. 
> > 
> > Tenho que fazer por execute immediate??
> > 
> > 
> > 
> > 
> > 
> > 
> > 
> > atenciosamente, 
> > 
> > 
> > 
> > 
> > 
> > Renan Nucci
> > 
> > Desenvolvedor C#
> > 
> > CSM Software
> > 
> > Msn: renanxr3@
> > 
> > 
> > 
> > De: oracle_br@yahoogrupos.com.br <mailto:oracle_br%40yahoogrupos.com.br>

<mailto:oracle_br%40yahoogrupos.com.br>
> <mailto:oracle_br%40yahoogrupos.com.br>
> <mailto:oracle_br%40yahoogrupos.com.br> 
> [mailto:oracle_br@yahoogrupos.com.br
<mailto:oracle_br%40yahoogrupos.com.br> 
<mailto:oracle_br%40yahoogrupos.com.br>
> <mailto:oracle_br%40yahoogrupos.com.br>
> <mailto:oracle_br%40yahoogrupos.com.br>
> ] Em
> > nome de Clayton Rocha
> > Enviada em: sexta-feira, 20 de julho de 2007 10:59
> > Para: oracle_br@yahoogrupos.com.br
<mailto:oracle_br%40yahoogrupos.com.br> 
<mailto:oracle_br%40yahoogrupos.com.br>
> <mailto:oracle_br%40yahoogrupos.com.br>
> <mailto:oracle_br%40yahoogrupos.com.br>
> 
> > Assunto: RES: [oracle_br] Conceder permissao a todos objetod de UM 
> schema
> > 
> > 
> > 
> > Como fazer para todos os objetos?? Views, sps etc..
> > Você pode usar o modelo e criar o script que desejar baseado na view
> > all_objects. Enquanto estou aqui escrevendo esse email o Chiappa já 
> te
> > adiantou e está pronto o script... hehe
> > 
> > E outra coisa, se eu rodar esse scrpits todas tabelas irão ter o 
> acesso,
> > blz, e se depois disso uma tabela for criada??
> > 
> > Se depois disso algum objeto for criado você também precisará dar as
> > respectivas permissões para esse objeto. A melhor coisa é pegar 
> esse script
> > que o Chiappa acabou de mandar e executá-lo sempre que for criado 
> algum
> > objeto novo.
> > 
> > []'s
> > 
> > Clayton
> > 
> > De: oracle_br@yahoogrupos.com.br <mailto:oracle_br%40yahoogrupos.com.br>

<mailto:oracle_br%40yahoogrupos.com.br>
> <mailto:oracle_br%40yahoogrupos.com.br>
> <mailto:oracle_br%40yahoogrupos.com.br>
> <mailto:oracle_br%
> 40yahoogrupos.com.br>
> > [mailto:oracle_br@yahoogrupos.com.br
<mailto:oracle_br%40yahoogrupos.com.br> 
> <mailto:oracle_br%40yahoogrupos.com.br> 
> <mailto:oracle_br%40yahoogrupos.com.br> 
> <mailto:oracle_br%40yahoogrupos.com.br> <mailto:oracle_br%
> 40yahoogrupos.com.br>
> > ] Em
> > nome de Renan Nucci - CSM Software
> > Enviada em: sexta-feira, 20 de julho de 2007 10:41
> > Para: oracle_br@yahoogrupos.com.br
<mailto:oracle_br%40yahoogrupos.com.br> 
<mailto:oracle_br%40yahoogrupos.com.br>
> <mailto:oracle_br%40yahoogrupos.com.br>
> <mailto:oracle_br%40yahoogrupos.com.br>
> <mailto:oracle_br%
> 40yahoogrupos.com.br> 
> > Assunto: RES: [oracle_br] Conceder permissao a todos objetod de UM 
> schema
> > 
> > Obrigado pelas respostas.. mas...
> > 
> > Como fazer para todos os objetos?? Views, sps etc..
> > 
> > E outra coisa, se eu rodar esse scrpits todas tabelas irão ter o 
> acesso,
> > blz, e se depois disso uma tabela for criada??
> > 
> > Esse usuário não vai ter permissao a essa tabela?
> > 
> > atenciosamente, 
> > 
> > Renan Nucci
> > 
> > Desenvolvedor C#
> > 
> > CSM Software
> > 
> > Msn: renanxr3@ <mailto:renanxr3%40hotmail.com>
> > <mailto:renanxr3%40hotmail.com> 
> > 
> > De: oracle_br@yahoogrupos.com.br <mailto:oracle_br%40yahoogrupos.com.br>

<mailto:oracle_br%40yahoogrupos.com.br>
> <mailto:oracle_br%40yahoogrupos.com.br>
> <mailto:oracle_br%40yahoogrupos.com.br>
> <mailto:oracle_br%
> 40yahoogrupos.com.br>
> > <mailto:oracle_br%40yahoogrupos.com.br>
> > [mailto:oracle_br@yahoogrupos.com.br
<mailto:oracle_br%40yahoogrupos.com.br> 
> <mailto:oracle_br%40yahoogrupos.com.br> 
> <mailto:oracle_br%40yahoogrupos.com.br> 
> <mailto:oracle_br%40yahoogrupos.com.br> <mailto:oracle_br%
> 40yahoogrupos.com.br>
> > <mailto:oracle_br%40yahoogrupos.com.br>
> > ] Em
> > nome de Marcus Vinicius Miguel Pedro
> > Enviada em: sexta-feira, 20 de julho de 2007 10:14
> > Para: oracle_br@yahoogrupos.com.br
<mailto:oracle_br%40yahoogrupos.com.br> 
<mailto:oracle_br%40yahoogrupos.com.br>
> <mailto:oracle_br%40yahoogrupos.com.br>
> <mailto:oracle_br%40yahoogrupos.com.br>
> <mailto:oracle_br%
> 40yahoogrupos.com.br>
> > <mailto:oracle_br%40yahoogrupos.com.br> 
> > Assunto: RES: [oracle_br] Conceder permissao a todos objetod de UM 
> schema
> > 
> > Lembrando que este script vai conceder select apenas para as 
> tabelas. Se o
> > owner tiver views e outros objetos, o grant não será realizado.
> > 
> > _____ 
> > 
> > De: oracle_br@yahoogrupos.com.br <mailto:oracle_br%40yahoogrupos.com.br>

<mailto:oracle_br%40yahoogrupos.com.br>
> <mailto:oracle_br%40yahoogrupos.com.br>
> <mailto:oracle_br%40yahoogrupos.com.br>
> <mailto:oracle_br%
> 40yahoogrupos.com.br>
> > <mailto:oracle_br%40yahoogrupos.com.br>
> > <mailto:oracle_br%40yahoogrupos.com.br>
> > [mailto:oracle_br@yahoogrupos.com.br
<mailto:oracle_br%40yahoogrupos.com.br> 
> <mailto:oracle_br%40yahoogrupos.com.br> 
> <mailto:oracle_br%40yahoogrupos.com.br> 
> <mailto:oracle_br%40yahoogrupos.com.br> <mailto:oracle_br%
> 40yahoogrupos.com.br>
> > <mailto:oracle_br%40yahoogrupos.com.br>
> > <mailto:oracle_br%40yahoogrupos.com.br>
> > ] Em
> > nome de Clayton Rocha
> > Enviada em: Friday, July 20, 2007 9:38 AM
> > Para: oracle_br@yahoogrupos.com.br
<mailto:oracle_br%40yahoogrupos.com.br> 
<mailto:oracle_br%40yahoogrupos.com.br>
> <mailto:oracle_br%40yahoogrupos.com.br>
> <mailto:oracle_br%40yahoogrupos.com.br>
> <mailto:oracle_br%
> 40yahoogrupos.com.br>
> > <mailto:oracle_br%40yahoogrupos.com.br>
> > <mailto:oracle_br%40yahoogrupos.com.br> 
> > Assunto: RES: [oracle_br] Conceder permissao a todos objetod de UM 
> schema
> > 
> > Fácil... apenas substitua o SCHEMA1 e USUARIO2 no script abaixo e 
> rode ele
> > com usuário DBA ou SCHEMA1.
> > 
> > spool grant.sql 
> > 
> > select 'grant select on schema1.'||table_name||' to usuario2;' from
> > all_tables where owner='SCHEMA1';
> > 
> > spool off;
> > 
> > @grant.sql
> > 
> > Abraço!
> > 
> > Clayton Rocha
> > 
> > De: [EMAIL PROTECTED] <mailto:oracle_br%40yahoogrupos.com.br> 
> os.com.br
> > [mailto:[EMAIL PROTECTED] <mailto:oracle_br%40yahoogrupos.com.br>
> > os.com.br] Em
> > nome de Renan Nucci - CSM Software
> > Enviada em: sexta-feira, 20 de julho de 2007 08:58
> > Para: grupo- Oracle_br
> > Assunto: [oracle_br] Conceder permissao a todos objetod de UM schema
> > 
> > Bom dia pessoal, 
> > 
> > Poderiam me dar uma dica de como faço para conceder permissão para 
> um
> > usuário (ex.: user1) ter permissão de SELECT em um determinado 
> schema (ex.:
> > schema1)??? 
> > 
> > Percebem que eu quero dar permissão para todos os objetos q fazem 
> parte
> > desse schema especificamente, não quero dar permissão para soh um 
> objeto do
> > schema e nem para todos os schemas, eh soh para os objetos do 
> schema q eu
> > queira.
> > 
> > Eu sei dar permissão para apenas um objeto do schema e para todos 
> schemas, q
> > se não me engano eh assim: 
> > 
> > Grant select on schema1.tabela to user1 e para todos os objetos de 
> todos
> > schemas eh assim: Grant select any table to user1
> > 
> > mas isso não resolve o meu problema... 
> > 
> > alguém pode me ajudar??
> > 
> > Obrigado
> > 
> > Renan Nucci
> > 
> > [As partes desta mensagem que não continham texto foram removidas]
> > 
> > [As partes desta mensagem que não continham texto foram removidas]
> > 
> > [As partes desta mensagem que não continham texto foram removidas]
> > 
> > [As partes desta mensagem que não continham texto foram removidas]
> > 
> > [As partes desta mensagem que não continham texto foram removidas]
> > 
> > 
> > 
> > 
> > 
> > [As partes desta mensagem que não continham texto foram removidas]
> >
> 
> [As partes desta mensagem que não continham texto foram removidas]
> 
> [As partes desta mensagem que não continham texto foram removidas]
> 
> 
> 
> 
> 
> [As partes desta mensagem que não continham texto foram removidas]
>

 



[As partes desta mensagem que não continham texto foram removidas]

Responder a