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 :

[v9] droits sur schéma


Sujet :

Oracle

  1. #1
    Expert éminent
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 925
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Expert Processus IT
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 925
    Points : 6 040
    Points
    6 040
    Par défaut [v9] droits sur schéma
    Dans le but de me faire la main sur Oracle je fais 1 appli en Delphi avec dbExpress.

    Suite à un post précédent, j'ai défini 1 TS dédié à ma base. Puis j'ai défini 1 schéma, puis les tables dans ce schéma en utilisant le user lié à ce schéma.


    Q1: le user lié à ce schéma doit-il recevoir des droits particuliers sur ses propres tables ?

    Q2: ayant opté pour un partage de la base par des "comptes" authentifiés par Oracle, j'ai donc:
    - défini ces comptes supplémentaire (=schémas vides)
    - granté ces comptes sur les tables de la base (select, update, delete,reference)

    -> le principe est-il ok ?
    -> ces grants sont-ils suffisants ?
    -> qui doit granter: SYS ou le "propriétaire" du schéma ?

    Q3: pour 1 gestion plus simple, créer un rôle ayant les droits (select, etc...) sur ces tables, puis attribuer ce rôle aux utilisateurs est-il équivalent au principe évoqué à la Q2 ?


    Question subsidiaireretour à mon appli)
    les tables référencées dans les requètes doivent-elles être préfixées par le schéma qui les abritent ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT .... FROM SCHEMA.LATABLE
    en effet, j'ai fait un galop d'essai, sous Delphi, et je ne suis pas "satisfait" du résultat (cf http://www.developpez.net/forums/viewtopic.php?t=426136 pour les patients )

    Merci pour votre attention.

  2. #2
    Membre éclairé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 414
    Points : 672
    Points
    672
    Par défaut
    q1 : non. Il doit juste avoir les roles connect et resource

    q2: principe ok si tu souhaites fonctionner comme cela.
    si tu as des triggers ou des procédures stockées, il faut les granter également. Idem pour les vues.
    En principe le Grantor doit toujours etre le propriétaire.

    Q3: oui

    Q4: par défaut la syntaxe est bien OWNER.LATABLE en SQL Oracle donc si le owner n'est pas renseigné, il cherche une table dans le schéma courant. Si tu veux ne pas être obligé de mettre le owner de la table, il faut que tu créés des synonymes des tables dans chaque schéma.

  3. #3
    Rédacteur

    Homme Profil pro
    Consultant / formateur Oracle et SQL Server
    Inscrit en
    Décembre 2002
    Messages
    3 461
    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 461
    Points : 8 079
    Points
    8 079
    Par défaut Re: [v9] droits sur schéma
    Bonjour

    Mes réponses divergent sur quelques points :

    Citation Envoyé par qi130
    Q1: le user lié à ce schéma doit-il recevoir des droits particuliers sur ses propres tables ?
    Si l'utilisateur a au moins CREATE SESSION, CREATE TABLE et un quota sur un tablespace, il peut jouer avec ses tables (CREATE, INSERT, DELETE, UPDATE, SELECT, TRUNCATE, DROP) sans privilèges complémentaires.

    Par contre, il lui faudra des privilèges spécifiques pour créer des vues, des séquences, des synonymes, etc.
    A noter que ce sont là des privilèges système (c'est à dire généraux) et non des privilèges objets (c'est à dire qui s'appliquent à un objet nommément désigné, tel que la table X).

    Ces privilèges complémentaires sont en bonne partie accessibles via les rôles CONNECT et RESOURCE (lesquels se chevauchent partiellement).

    Voir cette petite discussion à propos du rôle RESOURCE, dont l'usage est déconseillé en production : http://www.developpez.net/forums/viewtopic.php?t=425488


    Citation Envoyé par qi130
    Q3: pour 1 gestion plus simple, créer un rôle ayant les droits (select, etc...) sur ces tables, puis attribuer ce rôle aux utilisateurs est-il équivalent au principe évoqué à la Q2 ?
    Malheureusement, cela n'est pas strictement équivalent.
    En particulier, les rôles ne sont pas pris en compte en PL/SQL, et on ne peut pas créer de vue sur des tables sur lesquelles on a obtenu le SELECT via un rôle.

  4. #4
    Expert éminent
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 925
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Expert Processus IT
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 925
    Points : 6 040
    Points
    6 040
    Par défaut
    Merci pour vos précieuses réponses à mes interrogations de néophyte

    Grâce à vous, mon appli avance:
    création des synonymes ("public"), du rôle, grant du rôle sur les tables, attribution du rôle à d'autres comptes.

    Je bloque à présent sur un point "curieux" car avec les grants il ne devrait pas se produire (?):

    Sur un INSERT des plus classiques, je récupère un "privilèges insuffisants"...

    Pourtant, le user connecté a reçu le bon rôle, lequel a bien été granté pour l'insert sur cette table je me perds en conjecture...

    [edit]
    En fait, cet insert n'est pas si classique que ça puisqu'il met en oeuvre une contrainte de FK

    Aussi, y a t'il un grant particulier (references?) à distribuer dans ce contexte ?

  5. #5
    Membre éclairé

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2003
    Messages
    701
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 701
    Points : 710
    Points
    710
    Billets dans le blog
    1
    Par défaut
    bonjour,

    une petite confirmation : le grant pour l' insertion
    est-il donné par un rôle ou par un privilége ?

    l' insert est-il du sql pur ou du pl/sql ?

    cdlt

  6. #6
    Expert éminent
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 925
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Expert Processus IT
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 925
    Points : 6 040
    Points
    6 040
    Par défaut
    A priori, le user est granté (reçoit) pour le role , et c'est le role qui a été granté pour insert,delete,update et select par le propriétaire du schéma où sont les tables.

    Quant à la requète, c'est du SQL pur, encapsulé dans un composant Tquery de dbExpress.
    Ceci dit, sous Toad, c'est pareil, par contre, l'update marche... y compris pour la FK

  7. #7
    Expert éminent
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 925
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Expert Processus IT
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 925
    Points : 6 040
    Points
    6 040
    Par défaut
    J'ai aussi granté REFERENCES TO PUBLIC, sans résultat

    Il y a un truc qui me soucie:

    Sous Toad, quand je regarde les droits sur une table de ma base, le role dispose bien des droits attribués, par contre les users qui ont reçu le role ne semblent avoir aucun droit sur cette table...comme si le grant role ne se faisait pas ?

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

Discussions similaires

  1. Droits sur un schéma apres création.
    Par pilpoil123 dans le forum MySQL
    Réponses: 1
    Dernier message: 29/03/2010, 17h47
  2. Droits sur index d'un autre schéma
    Par xant dans le forum Administration
    Réponses: 2
    Dernier message: 10/12/2008, 12h02
  3. Trigger et droits sur schémas.
    Par macben dans le forum Oracle
    Réponses: 1
    Dernier message: 11/07/2007, 21h52
  4. Comment donner des droits sur tous les objets d'un schéma
    Par farenheiit dans le forum Administration
    Réponses: 2
    Dernier message: 07/06/2007, 17h27
  5. [Système] Droits sur un fichier
    Par maxvador dans le forum API standards et tierces
    Réponses: 7
    Dernier message: 16/07/2004, 18h06

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