|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre Expert
![]() Inscription : juin 2007 Messages : 1 497 ![]() |
Je veux créer la procédure suivante (que j'ai simplifiée pour expliquer l'erreur) dans le schéma SYSTEM (je suis connecté en tant que SYSTEM) :
Code :
Alors qu'avec une autre vue comme all_tables par exemple ça fonctionne. Pourtant le user SYSTEM a bien accès en lecture à la vue dba_tables (ça marche depuis une simple requête SQL) Comment est-ce possible que SYSTEM ait accès à une vue dba depuis du code SQL mais pas du code PL/SQL ? La gestion des droits est-elle différente ? Ou bien aurais-je oublié quelque chose ? Merci pour votre aide |
||
|
|
00
|
|
|
#2 | |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
Citation:
Par ailleurs, un EXECUTE IMMEDIATE est complétement inutile pour faire du DML sans valeur dynamique |
|
|
|
00
|
|
|
#3 |
|
Membre éprouvé
![]() Inscription : décembre 2007 Messages : 354 ![]() |
|
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() Inscription : juin 2007 Messages : 1 497 ![]() |
Merci pour vos réponses j'aurai appris quelque chose
Le EXECUTE IMMEDIATE c'était juste comme exemple, j'avais simplifié le code de ma procédure
|
|
|
00
|
|
|
#5 |
|
Expert Confirmé
![]() Inscription : février 2006 Messages : 3 433 ![]() |
Une autre précision: depuis la 8i, on peut également définir une procédure stockée avec la clause AUTHID CURRENT_USER qui signifie qu'elle s'exécute avec les droits de l'utilisateur qui l'exécute (et non avec les droits du propriétaire de la procédure comme c'est le cas par défaut).
Dans ce cas on peut utiliser DBM_SESSION.SET_ROLE pour activer les rôles qui seront pris en compte par le SQL dynamique (et non statique). Voir les exemples du Security Guide. Ce n'est sans doute pas d'usage courant mais cela peut parfois être utile. |
|
|
00
|
|
|
#6 |
|
Membre éprouvé
![]() Inscription : décembre 2007 Messages : 354 ![]() |
|
|
|
00
|
|
|
#7 | |
|
Membre Expert
![]() Inscription : juin 2007 Messages : 1 497 ![]() |
Citation:
Néanmoins, avec du recul j'ai du mal à comprendre pourquoi les rôles ne sont pas pris en compte en PL/SQL ... Quels problèmes de sécurité cela peut-il engendrer ? Quelqu'un aurait-il un exemple concret ? |
|
|
|
00
|
|
|
#8 |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
y'a rien à comprendre... c'est comme ça c'est tout
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com