Fórum Grant em Role não funcina em Stored Procedure #28145

19/04/2005

0

Fala galera...

Eu tenho uma role de nome xRole

Tenho um esquema de nome xEsquema_estoque

E outro chamado xEsquema_producao

E mais um outro que se chama xEsquema (que é o que todos se conectam)...

Dentro do esquema xEstoque_producao tenho uma tabela xProduto

Eu defini permissões (todas) para xRole acessar xProduto.

e defini permissão xRole para xEsquema.

Bom... parece que está tudo certo... e realmente, no SQLPlus funciona perfeitamente... porém, se eu criar uma SP dentro do esquema xEsquema, que acesse a tabela xProduto, dá erro....

Se eu definir permissões de acesso diretamente de xProduto para xEsquema funciona...

Será que alguém já passou por isso... será que eu estou fazendo alguma coisa errada...


Kotho

Kotho

Responder

Posts

19/04/2005

Motta

Não faltou um grant de execute para a sp ?


Responder

Gostei + 0

20/04/2005

Kotho

Mota,

primeiramente, obrigado pela resposta...

na verdade o problema não está na execução da sp, mas na criação dela, pois ela diz que a tabela xProduto não existe (como se não tivesse permissão)... O estranho é que no SQLPlus eu consigo acessar a tabela normalmente... só dentro da sp que não...

entendeu???

ah! a versão do Oracle é 9.2


Responder

Gostei + 0

20/04/2005

Motta

A SP e a table estão no mesmo owner ?

Senão :

1) Crie um sinonimo publico

2) Qualifique a table na SP ... SELECT * FROM USUARIO.TABLE


Responder

Gostei + 0

20/04/2005

Kotho

É amigo, acho que não vai ter solução... hehe

Como disse no primeiro post, xProduto pertente a xEsquema_Producao, e a procedure a xEsquema...

1) o sinonimo já existe...

2) a qualificação não adiantou...

Desculpe insistir, mas no SQLPlus funciona... só dentro da sp que não...

lembrando que se o Grant for dado direto ao xEsquema funciona, mas dando na Role xRole dá esse problema.


Responder

Gostei + 0

22/04/2005

Motta

Como é esta role , senhada ?

O user que vai rodar já a tem como default , ou é passada dinamicamente (grant role xxxx to user) ?


Responder

Gostei + 0

07/05/2005

Mportes

Kotho, voce precisa ter privilegio direto no objeto. Roles são para os usuários finais.
[url]http://download-west.oracle.com/docs/cd/B10501_01/appdev.920/a96595/dci05pls.htm#1004793[/url] aqui voce entra a parte do manual que explica isso.
Para testar o que voce tem ou não direito, no sql/plus
set role none;
e tente os comandos da procedure.

Abs,


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar