IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SQL Oracle Discussion :

Proc stock & droits


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mai 2006
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 13
    Par défaut Proc stock & droits
    Bonjour,

    J'essaie de créer une procédure dans un schéma SCHEM_1.
    Cette procédure fait un select sur une table d'un autre shéma SCHEM_2 :
    select col1 into var_col1 from SCHEM_2.MaTable;
    Quand je compile cette procédure j'ai comme erreur "PL/SQL: ORA-00942: table or view does not exist".

    Ce que je ne comprends pas c'est que quand je suis loggé en SCHEM_1 je peux faire sans problème :
    select col1 from SCHEM_2.MaTable

    SCHEM_1 a donc les droits pour faire des select sur SCHEM_2 mais pas pour faire des select sur SCHEM_2 dans une procédure stockée ?

    Merci de votre aide ?

  2. #2
    Membre confirmé
    Inscrit en
    Août 2006
    Messages
    181
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 181
    Par défaut
    tu peux nous montrez le code de ta proc ?

  3. #3
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    attention, en PL/SQL il faut granter le SELECT table par table, les rôles ne sont pas pris en compte (contrairement au SQL)

  4. #4
    Membre averti
    Inscrit en
    Mai 2006
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 13
    Par défaut
    C'est OK

    Merci beaucoup

  5. #5
    Membre expérimenté
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    178
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 178
    Par défaut
    Plutôt que de créer dans SCHEM_1 une procédure qui accède à des tables de SCHEM_2, il est plus simple de créer une procédure dans SCHEM_2 et de donner le droit d'exécution sur cette procédure à SCHEM_1. Le mieux est même de mettre toutes les procédures d'accès aux données de SCHEM_2 dans des packages de SCHEM_2 puis de donner les droits d'exécutions sur ces packages aux autres users qui en ont besoin.

    Ainsi les autres users n'ont besoin d'aucun droit sur les tables, vues... de SCHEM_2, seulement le droit d'exécution sur les packages. C'est beaucoup plus simple comme gestion de droits et beaucoup plus sécurisé car les users autres que SCHEM_2 ne pourront effectuer sur les données de SCHEM_2 que ce qui est autorisé dans les procédures stockées.

    C'est le modèle que nous appliquons :

    - Un schéma unique schema1, propriétaire des tables, vues...
    - Des users applicatifs qui n'ont que les droits suivants :
    . grant create session to app_u_1;
    . grant execute on schema1.pkg_1 to app_u_1;

    Chacun de ces users applicatifs a le droit d'exécution sur 1 package en général, parfois 2 ou 3. Un user applicatif correspond à une application, par exemple "gestion des connexions utilisateurs", "Requêtes client de catégorie n"...

    Le schéma unique n'est pas une obligation, on peut imaginer des regroupements fonctionnels de tables et des clés étrangères inter-schémas, mais le principe est le même : ne jamais utiliser un user qui a plus de droits que nécessaire dans une application.

    Cordialement,

    rbaraer

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Appels de procedures stockées dans une proc stockée ?
    Par Nadaa dans le forum MS SQL Server
    Réponses: 12
    Dernier message: 17/07/2008, 10h32
  2. Lancement d'un shell Unix dans un proc stockée
    Par SBA03 dans le forum Oracle
    Réponses: 20
    Dernier message: 31/08/2006, 09h22
  3. [proc stockée][sqlserver2k] pb MonChamp IN @Mesvaleurs
    Par jld33 dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 07/01/2004, 09h47
  4. [MSDE 2000] Récup champ text depuis proc stockée
    Par Air'V dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 14/12/2003, 19h47
  5. Réponses: 2
    Dernier message: 16/10/2003, 17h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo