Grant em Role não funcina em Stored Procedure
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...
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
Curtidas 0
Respostas
Motta
19/04/2005
Não faltou um grant de execute para a sp ?
GOSTEI 0
Kotho
19/04/2005
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
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
GOSTEI 0
Motta
19/04/2005
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
Senão :
1) Crie um sinonimo publico
2) Qualifique a table na SP ... SELECT * FROM USUARIO.TABLE
GOSTEI 0
Kotho
19/04/2005
É 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.
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.
GOSTEI 0
Motta
19/04/2005
Como é esta role , senhada ?
O user que vai rodar já a tem como default , ou é passada dinamicamente (grant role xxxx to user) ?
O user que vai rodar já a tem como default , ou é passada dinamicamente (grant role xxxx to user) ?
GOSTEI 0
Mportes
19/04/2005
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,
[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,
GOSTEI 0