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

Administration Oracle Discussion :

difference entre schema et user


Sujet :

Administration Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Inscrit en
    Novembre 2008
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 139
    Par défaut difference entre schema et user
    Bonsoir,

    j'ai pas pu comprendre la difference excacte entre schema et user.

    ya-t-il de requette sql me permet de consulter la liste des schemas et la liste des users pour une instance de base des données.

  2. #2
    Membre Expert Avatar de Garuda
    Homme Profil pro
    Chef de projet / Urbaniste SI
    Inscrit en
    Juin 2007
    Messages
    1 285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet / Urbaniste SI
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 285
    Par défaut
    Effectivement, c'est assez ressemblant
    En gros
    Un schemas est un ensemble d'objet (tables, vues, procédures) appartenant à un USER

    Tu peux avoir un user sans schéma, mais pas l'inverse !

  3. #3
    Membre Expert Avatar de Garuda
    Homme Profil pro
    Chef de projet / Urbaniste SI
    Inscrit en
    Juin 2007
    Messages
    1 285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet / Urbaniste SI
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 285
    Par défaut
    Liste des users
    select * from all_users
    liste des schemas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    select distinct owner from all_objects

  4. #4
    Membre très actif
    Inscrit en
    Novembre 2008
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 139
    Par défaut
    bonjour,

    Merci Garuda,

    1-je veux savoir comment le schema et le user sont conçus au niveau meta data d 'oracle...autrement, quelle est la cardinalité entre user et schema?

    2- normalement quand on crée un user, un schema par defaut sera créer automatiquement.
    Quelle est la structure de ce schema? est ce qu'il est compoé par des objets sql?
    pourkoi le shema et le user sont conçus separemment? porkoi les oradistes n'ont pas choisi la strategie de confondre la notion de schema et de user?

  5. #5
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Chez Oracle, schéma et user sont effectivement synonymes.
    Aucun objet n'est créé par défaut dans un schéma / user.

  6. #6
    Membre éclairé
    Inscrit en
    Janvier 2011
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 56
    Par défaut
    Bonjour,
    C vrai que la notion de schema et user sur Oracle est confuse. Sur Oracle, les notions du schéma et user sont vraiment differentes des autres SGBD notamment ; SQL Server, DB2 et MYSQL...
    Sur Oracle, la relation entre schéma et user est une relation 1-1 , ce n'est pas comme on avait répondu avant qu'un user ne peut pas avoir de schéma, ca c'est faux car même, si ne vous créez pas d'objets sous un user, Oracle crée par défaut un schéma composants de plusieurs vues , tables de dictionnaire de données comme user_tables, user_errors, user_....*

    Dans ce qui suit, vous pouvez avoir une idée, la diff entre schéma et user sur Oracle.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
     
     
    SQL> conn wissem/wissem
    Connected.
    SQL> select object_name from user_objects;
     
    OBJECT_NAME
    --------------------------------------------------------------------------------
    T_WISSEM
    T2_WISSEM
     
    11 rows selected.
     
    SQL> conn orawiss / wissem
    Connected.
    SQL> select object_name from user_objects;
     
    OBJECT_NAME
    --------------------------------------------------------------------------------
    T2_ORAWISS
    T_ORAWISS
     
    SQL> alter session set current_schema=wissem;
     
    Session altered.
     
    SQL> select object_name from user_objects;
     
    OBJECT_NAME
    --------------------------------------------------------------------------------
    T2_ORAWISS
    T_ORAWISS
     
    SQL> select username, schemaname from v$session ;
     
    USERNAME		       SCHEMANAME
    ------------------------------ ------------------------------
    			       SYS
    ORAWISS 	      WISSEM
    			       SYS
    			       SYS
    			       SYS
     
    5 rows selected.
     
    SQL>

  7. #7
    Membre Expert Avatar de Garuda
    Homme Profil pro
    Chef de projet / Urbaniste SI
    Inscrit en
    Juin 2007
    Messages
    1 285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet / Urbaniste SI
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 285
    Par défaut
    @oraswiss
    Sur Oracle, la relation entre schéma et user est une relation 1-1 , ce n'est pas comme on avait répondu avant qu'un user ne peut pas avoir de schéma, ca c'est faux car même, si ne vous créez pas d'objets sous un user, Oracle crée par défaut un schéma composants de plusieurs vues , tables de dictionnaire de données comme user_tables, user_errors, user_....*
    Ce n'est pas ce qui a été dit !
    Ce qui a été dit, c'est qu'il peut exister un user "TOTO" sans schéma "TOTO" (c'est à dire sans objets lui appartenant) !
    Ton exemple n'est pas parlant !
    Sauf erreur, les objets dont tu parles, ne sont pas créés dans le schéma du user mais dans le schéma SYS à la creation de la base !!!!!

  8. #8
    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
    Par défaut
    1)
    L'utilisateur fait référence à la notion d'identité.
    Le schéma fait référence à la notion de propriété.

    Tout utilisateur X possède un schéma de même nom X (l'ensemble des objets qui lui appartiennent), initialement vide.
    Les privilèges sont associés à l'utilisateur, et non au schéma.

    Quand on se connecte, on le fait sous une certaine identité (disons SCOTT), et on est placé par défaut dans le schéma du même nom.
    Mais comme Wissem l'a rappelé, on peut changer de schéma courant (disons HR) sans changer pour autant d'identité. C'est à dire qu'on continue à travailler avec les privilèges de SCOTT sur les objets de HR. On ne devient pas HR !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    connect system/system
    grant select on hr.employees to scott;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    SQL> connect scott/tiger
    Connecté.
    
    SQL> select username, schemaname from v$session where sid=(select max(sid) from v$mystat);
    
    USERNAME                       SCHEMANAME
    ------------------------------ ------------------------------
    SCOTT                          SCOTT
    
    SQL>
    SQL> alter session set current_schema=HR;
    
    Session modifiée.
    
    SQL> select username, schemaname from v$session where sid=(select max(sid) from v$mystat);
    
    USERNAME                       SCHEMANAME
    ------------------------------ ------------------------------
    SCOTT                          HR
    
    SQL> select count(*) from employees;
    
      COUNT(*)
    ----------
           107
    
    SQL>
    SQL> -- ce sont les objets de SCOTT qui sont listés !
    SQL> select object_name, object_type from user_objects;
    
    OBJECT_NAME     OBJECT_TYPE
    --------------- -------------------
    PK_DEPT         INDEX
    DEPT            TABLE
    EMP             TABLE
    PK_EMP          INDEX
    BONUS           TABLE
    SALGRADE        TABLE
    2)
    C'est aussi une question de convention.
    Dans certaines équipes, on fait une distinction opérationnelle entre utilisateur et schéma : un schéma est un compte Oracle possédant les objets applicatifs, alors qu'un utilisateur est un simple compte Oracle ne possédant aucun objet en propre, et qui va utiliser les objets du schéma applicatif.

  9. #9
    Membre très actif
    Inscrit en
    Novembre 2008
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 139
    Par défaut
    Bonjour,
    Tout utilisateur X possède un schéma de même nom X (l'ensemble des objets qui lui appartiennent), initialement vide.
    Les privilèges sont associés à l'utilisateur, et non au schéma.
    Comment peut on savoir la liste des objets associés à l'utilisateur et la liste associés au schema


    on peut changer de schéma courant (disons HR) sans changer pour autant d'identité.
    j'ai compris qu'un user peut posseder plusieurs schemas....est ce c'est Correcte? est ce que l'inverse est correcte?
    je cherche un plus d'explication sur la cardinalité entre le user et le schema.

  10. #10
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2 953
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 953
    Par défaut
    OK je vais rajouter une couche alors...
    user = schema <=> schema = user
    Pas besoin de se prendre la tête dessus !

    Ce que Pomalaix voulait démontrer c'est qu'on peut switch de user en user tout en gardant les droits du user initial.

    En utilisant la fonction recherche sur le titre exacte du post on obtient :
    http://www.developpez.net/forums/d15...e-user-schema/
    PS : Fred = orafrance

    qui dit clairement que c'est la même chose tout le reste n'est que pinaillage... (possède,est,équivaut...)

    Sur le forum on pinaille parfois parce que par exemple vous pouvez avoir un schéma (= user) A qui contient les données (tables), puis un schéma (= user) B qui contient les méthodes (proc stock) accédant au précédent schéma (=user) A et un user (= schéma) C applicatif qui se connecte à la base pour exécuter les procs stock définies par le précédent schéma(= user) B.

    Est ce vraiment plus clair...hmmm...je ne suis pas sûr...

  11. #11
    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
    Par défaut
    Citation Envoyé par haykelFST Voir le message
    j'ai compris qu'un user peut posseder plusieurs schemas....est ce c'est Correcte? est ce que l'inverse est correcte?
    je cherche un plus d'explication sur la cardinalité entre le user et le schema.
    Un utilisateur X possède un et seul schéma qui s'appelle X aussi. Comme on l'a dit, le schéma de X, c'est l'ensemble des objets qui appartiennent à X.
    Autrement dit, il y a une relation 1-1 entre schéma et utilisateur. (Et là j'entends les mauvaises langues qui vont dire que si c'est 1-1, c'est qu'il y a identité).

    Par contre, un utilisateur X peut posséder des droits sur des objets qui appartiennent à d'autres utilisateurs, donc qui sont situés dans d'autres schémas.

Discussions similaires

  1. Réponses: 1
    Dernier message: 14/10/2009, 10h32
  2. Différences entre Delphi et Visual Basic ?
    Par Anonymous dans le forum Débats sur le développement - Le Best Of
    Réponses: 75
    Dernier message: 30/03/2009, 20h09
  3. Difference entre privilege et quota pour un user
    Par LAMARE dans le forum Oracle
    Réponses: 1
    Dernier message: 15/11/2006, 16h43
  4. [] Difference entre MSHFlexGrid et MSFlexGrid
    Par olivierx dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 23/04/2003, 08h48
  5. Difference entre types d'Adresse IP
    Par freud dans le forum Développement
    Réponses: 3
    Dernier message: 02/03/2003, 02h06

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