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

Oracle Discussion :

[10g] Problème de privilège dans une requête


Sujet :

Oracle

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 44
    Points : 42
    Points
    42
    Par défaut [10g] Problème de privilège dans une requête
    Bonjour,

    Je suis en train de developper une application sous Oracle.
    Les tables, index, sequences utilisées par cette application ont été créés par un utilisateur X. L'application, pour se connecter à Oracle, utilise un autre utilisateur que l'on appelera Y.

    J'ai bien donné à Y les droits pour acceder aux tables créées par X. Le problème, c'est que dans mes requêtes, je suis obligé de spécifier l'utilisateur X quand j'utilise une table.

    Par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM X.clients
    Comment faire pour qu'Oracle puisse accepter, de la part de l'utilisateur Y, une requête du type

    alors que clients a été créées par l'utilisateur X ?

    Merci de vos réponses !

  2. #2
    Membre expert

    Profil pro
    Inscrit en
    Février 2006
    Messages
    3 437
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 3 437
    Points : 3 597
    Points
    3 597
    Par défaut
    mettre en place la commande suivante quand Y se connecte:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ALTER SESSION SET CURRENT_SCHEMA = X;
    Toutes les requêtes exécutées par Y utiliseront par défaut le schéma.

  3. #3
    Rédacteur

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 320
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 320
    Points : 3 798
    Points
    3 798
    Par défaut
    La solution de Pifor est correcte ,
    cependant j'aurais une seule remarque il vaut mieux créer des synonymes que d'utiliser alter session car ce dernier il me semble que ce dernier demande un privilége particulier .

  4. #4
    Rédacteur

    Homme Profil pro
    Consultant / formateur Oracle et SQL Server
    Inscrit en
    Décembre 2002
    Messages
    3 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant / formateur Oracle et SQL Server

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 460
    Points : 8 077
    Points
    8 077
    Par défaut
    Citation Envoyé par pifor
    mettre en place la commande suivante quand Y se connecte:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ALTER SESSION SET CURRENT_SCHEMA = X;
    Toutes les requêtes exécutées par Y utiliseront par défaut le schéma.
    Bonjour

    Je ne trouve pas cette solution recommandable.
    Prenons un SELECT * FROM USER_TABLES.
    Ce sont les tables de Y qui seront retournées, et non celles de X.

    Par ordre de préférence, je prendrais les solutions suivantes (si elles sont possibles dans le contexte) :
    - se connecter en tant que X (pourquoi passer par cet Y ?)
    - créer tous les objets dans le schéma Y, et non X
    - utiliser des synonymes
    - modifier l'application pour qu'elle préfixe systématiquement les noms de tables par le schéma visé

  5. #5
    Membre expert

    Profil pro
    Inscrit en
    Février 2006
    Messages
    3 437
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 3 437
    Points : 3 597
    Points
    3 597
    Par défaut
    Pour que la solution avec les synonymes marchent, il faut créer des synonymes publiques (PUBLIC SYNONYM) et il faut aussi un privilège qui peut être considéré comme trop important (enfin cela dépend des organisations ...).

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 44
    Points : 42
    Points
    42
    Par défaut
    Citation Envoyé par Pomalaix
    - créer tous les objets dans le schéma Y, et non X
    Je pense que je vais utiliser cette solution, ce sera le plus simple à faire.

    Merci beaucoup !

  7. #7
    Membre expert

    Profil pro
    Inscrit en
    Février 2006
    Messages
    3 437
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 3 437
    Points : 3 597
    Points
    3 597
    Par défaut
    Dans Oracle 9i, le rôle CONNECT contient ALTER SESSION par contre il ne contient pas CREATE PUBLIC SYNONYM.
    Mais on peut considérer que CONNECT c'est déjà de trop pour un utilisateur final (je crois que en 10g, il est réduit).

    Includes the following system privileges: ALTER SESSION, CREATE CLUSTER, CREATE DATABASE LINK, CREATE SEQUENCE, CREATE SESSION, CREATE SYNONYM, CREATE TABLE, CREATE VIEW

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

Discussions similaires

  1. problème de cote dans une requête
    Par sam01 dans le forum Requêtes
    Réponses: 5
    Dernier message: 17/08/2006, 11h43
  2. Problème de précision dans une requête
    Par Le Pharaon dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 09/08/2006, 14h16
  3. Problème de décimales dans une requête
    Par pellec dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 21/07/2006, 08h15
  4. Problème de perfomances dans une requête
    Par claralavraie dans le forum Langage SQL
    Réponses: 1
    Dernier message: 05/01/2006, 14h25
  5. Problème de débutant dans une requête
    Par decour dans le forum Access
    Réponses: 7
    Dernier message: 14/10/2005, 14h17

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