Pas d'inquiétude, avec PBAdonf, c'est dans la poche ! ^^

Le forum (ô combien francophone) des utilisateurs de Powerbuilder.

Recherche rapide

Annonce

Certaines rubriques, dont des cours, sont uniquement visibles par les membres du forum ^^.
Dans la rubrique Liens & Références, vous avez accès à un sommaire de téléchargement, profitez-en !
Il existe maintenant un nouveau TOPIC "Votre CV en Ligne" accessible uniquement par demande.

#1 08-10-2008 10:32:23

mattdamon  
Le Tuniso-Parisien
Lieu: Livry-Gargan 93190
Date d'inscription: 29-12-2007
Messages: 569
Pépites: 89
Banque: 77,512,666,613,392,940

[RESOLU] Procédure stockées ne s'execute pas avec un autre user

Bonjour  à tous, 

J’ai un problème lors de l’exécution d’une procédure stockée. Je vous présente mon problème :

Lorsque je me connecte à l’application avec mon super user, il exécute bien ma procédure stockée (ça fonctionne bien), mais lorsque je me connecte avec un autre user la procédure stockée ne s’exécute plus.

mon super user avait les droits suivants : user_dba, user_connect, user_user, user_writer.

Même, j’ai tenté d’ajouter ces droits à mon nouveau user, mais toujours le problème persiste.

En fait, j’utilise la procédure stockée pour pouvoir insérer dans une table et dans une colonne, un champ a une taille très volumineuse (1 méga).

Merci pour vos aides 

Dernière modification par mattdamon (08-10-2008 13:51:07)

Hors ligne

 

#2 08-10-2008 10:36:20

foon  
N2iGeek + MangasGeek = foon
Award: bf
Lieu: Bonchamp-Lès-Laval
Date d'inscription: 28-02-2007
Messages: 2486
Pépites: 85
Banque: 9,223,372,036,854,776,000

Re: [RESOLU] Procédure stockées ne s'execute pas avec un autre user

Bonjour matt,
Si tu es sous Oracle, vérifie que ta procédure stockée est bien déclarée sans préfixe du schéma du user de création
(genre mon_user.ma_procedure)


Seuls ceux qui ne font rien ne font jamais d'erreurs
http://www.nerdtests.com/images/badge/163124fb7fb459a3.gif

Hors ligne

 

#3 08-10-2008 11:58:33

JCZ  
Builder Power
Award: bf
Lieu: 75019 paris
Date d'inscription: 21-05-2007
Messages: 1724
Pépites: 496,453,703,213
Banque: 9,223,372,036,854,776,000

Re: [RESOLU] Procédure stockées ne s'execute pas avec un autre user

faut voir aussi les synonyms et les droits d'execution ..


Face à l'agression, la puissance de l'intelligence

Hors ligne

 

#4 08-10-2008 12:10:04

mattdamon  
Le Tuniso-Parisien
Lieu: Livry-Gargan 93190
Date d'inscription: 29-12-2007
Messages: 569
Pépites: 89
Banque: 77,512,666,613,392,940

Re: [RESOLU] Procédure stockées ne s'execute pas avec un autre user

Salut foon,

Oui je travaille sur Oracle 10g.
Est ce que tu parle sur la déclaration du procédure stockée dans Local External Function ?

si oui c'est vrai dans Local External Function j'ai déja la déclaré  comme suit :

Code: pb

subroutine ma_procedure (string ls_mon_text )  RPCFUNC ALIAS &
FOR "mon_super_user.nom_packages_sql.ma_procedure"


est-ce que tu pense que j'enlève le mon_super_user ?

Merci

Dernière modification par mattdamon (08-10-2008 12:10:34)

Hors ligne

 

#5 08-10-2008 12:15:27

foon  
N2iGeek + MangasGeek = foon
Award: bf
Lieu: Bonchamp-Lès-Laval
Date d'inscription: 28-02-2007
Messages: 2486
Pépites: 85
Banque: 9,223,372,036,854,776,000

Re: [RESOLU] Procédure stockées ne s'execute pas avec un autre user

mattdamon a écrit:

Code: pb

subroutine ma_procedure (string ls_mon_text )  RPCFUNC ALIAS &
FOR "mon_super_user.nom_packages_sql.ma_procedure"


est-ce que tu pense que j'enlève le mon_super_user ?

Merci

Oui, je souhaiterais que tu l'enlèves. Ca va résoudre ton problème.
Bien entendu, il faut aussi que ton package soit déclaré ainsi sous ORACLE:

Code: sql

CREATE OR REPLACE PACKAGE nom_packages_sql IS....

Et non:

Code: sql

CREATE OR REPLACE PACKAGE mon_super_user.nom_packages_sql IS....

Seuls ceux qui ne font rien ne font jamais d'erreurs
http://www.nerdtests.com/images/badge/163124fb7fb459a3.gif

Hors ligne

 

#6 08-10-2008 12:25:54

nico  
Modérateur
Award: bf
Lieu: Plélan le grand
Date d'inscription: 08-02-2007
Messages: 273
Pépites: 13
Banque: 9,223,372,036,854,776,000

Re: [RESOLU] Procédure stockées ne s'execute pas avec un autre user

Salut,

Je suppose que tu as crée ta procédure stockée avec le user "mon_super_user".
Si c'est le cas, je pense que tu devrais vérifier si tu as bien crée un synonym pour ta proc comme la dit JCZ, auquel cas seul "mon_super_user" peut exécuter ta procédure.

Hors ligne

 

#7 08-10-2008 12:36:54

mattdamon  
Le Tuniso-Parisien
Lieu: Livry-Gargan 93190
Date d'inscription: 29-12-2007
Messages: 569
Pépites: 89
Banque: 77,512,666,613,392,940

Re: [RESOLU] Procédure stockées ne s'execute pas avec un autre user

J'ai vérifié bien la déclaration de package dans Oracle et c'est bien délarée...
même j'ai enlevé  le nom_super_user mais toujours le problème...

Code: pb

subroutine ma_procedure (string ls_mon_text )  RPCFUNC ALIAS &
FOR "nom_packages_sql.ma_procedure"


Une réponse à Nico : j'ai pas crée  un synonym pour pour ma procédure, j'ai vérifié les autres packages ils contiennent tous un synonyms seulement mon package..
comment je pourrais créer un synonym ?

merci

Hors ligne

 

#8 08-10-2008 12:40:49

erasorz  
Admin
Lieu: Babylone
Date d'inscription: 23-11-2006
Messages: 5121
Pépites: 97,197
Banque: 2,147,483,647

Re: [RESOLU] Procédure stockées ne s'execute pas avec un autre user

mattdamon a écrit:

comment je pourrais créer un synonym ?

=> http://www.psoug.org/reference/synonyms.html


N'envoyez jamais un humain faire le travail d'un programme.

Hors ligne

 

#9 08-10-2008 13:24:01

nico  
Modérateur
Award: bf
Lieu: Plélan le grand
Date d'inscription: 08-02-2007
Messages: 273
Pépites: 13
Banque: 9,223,372,036,854,776,000

Re: [RESOLU] Procédure stockées ne s'execute pas avec un autre user

CREATE  PUBLIC SYNONYM ma_procedure FOR mon_super_user.ma_procedure;

Hors ligne

 

#10 08-10-2008 13:30:22

foon  
N2iGeek + MangasGeek = foon
Award: bf
Lieu: Bonchamp-Lès-Laval
Date d'inscription: 28-02-2007
Messages: 2486
Pépites: 85
Banque: 9,223,372,036,854,776,000

Re: [RESOLU] Procédure stockées ne s'execute pas avec un autre user

Oui, mais je déconseille le "mon_super_user.ma_procedure" (problèmes de schéma en vue).
De plus, il vaut mieux attribuer le synonyme à tout le package (et non procédure par procédure)
Ca donnerai plutôt ceci:

Code: sql

CREATE PUBLIC SYNONYM mon_package FOR mon_package;

Seuls ceux qui ne font rien ne font jamais d'erreurs
http://www.nerdtests.com/images/badge/163124fb7fb459a3.gif

Hors ligne

 

#11 08-10-2008 13:31:05

nico  
Modérateur
Award: bf
Lieu: Plélan le grand
Date d'inscription: 08-02-2007
Messages: 273
Pépites: 13
Banque: 9,223,372,036,854,776,000

Re: [RESOLU] Procédure stockées ne s'execute pas avec un autre user

Vérifie si ton user possède les droits necessaires :

Code: sql

grant execute any procedure to mon_user;

Dernière modification par nico (08-10-2008 13:33:37)

Hors ligne

 

#12 08-10-2008 13:36:35

Cortex  
Modérateur
Lieu: Arlon
Date d'inscription: 08-02-2008
Messages: 194
Pépites: 6,904
Banque: 2,109,818,425,070

Re: [RESOLU] Procédure stockées ne s'execute pas avec un autre user

Moi, je conseillerais d'écouter un peu Foon avant de faire les barbares...

Hors ligne

 

#13 08-10-2008 13:38:28

mattdamon  
Le Tuniso-Parisien
Lieu: Livry-Gargan 93190
Date d'inscription: 29-12-2007
Messages: 569
Pépites: 89
Banque: 77,512,666,613,392,940

Re: [RESOLU] Procédure stockées ne s'execute pas avec un autre user

Merci à tous pour vos aides.
En fait la solution est comme suit :
dans l'exécution de ma packages Body, j'ai oublié une ligne importante :

Code: sql

GRANT EXECUTE ON xxx.mon_package TO xxx_user


avec xxx = mon super user

Cette ligne permet aux autres users qu'ont un droit  xxx_user, d'exécuter ce packages...

On peut voir ça sous pl/sql developer : packages-->nom_package-->Granted to roles-->xxx_user

Dernière modification par mattdamon (08-10-2008 13:43:09)

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22