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 :

[11.2.0.2.0] Nécessité de définir un quota ?


Sujet :

Administration Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Par défaut [11.2.0.2.0] Nécessité de définir un quota ?
    Bonjour tout le monde,

    En préparant la certification DBA vol I, j'ai vu qu'Oracle propose un échantillon de questions :
    http://education.oracle.com/pls/web_...Name=SQ1Z0_052

    Je suis étonné par l'une des 2 réponses de la question 6 : B (?) + D
    En effet, pour moi, à la réponse B, il faut définir un quota pour qu'un utilisateur puisse créer une table et il existe 2 cas où la définition d'un quota n'est pas nécessaire :
    - le privilège système UNLIMITED TABLESPACE a été attribué (ce n'est pas le cas ici)
    - concernant un tablespace temporaire (par ex pour "temp" ci-dessous ; or "users" n'est pas une tablespace temporaire)

    J'ai donc effectué un test sur une BD dont je dispose et effectivement user01 peut créer une table sans que l'on lui définisse explicitement un quota (donc il n'y a pas d'erreur dans les réponses valides).
    Quelqu'un peut m'expliquer pourquoi cet utilisateur user01 n'a pas besoin que l'on lui définisse un quota pour créer une table ?

    Merci.

    6. You created a new user on the database by executing the following command:

    SQL> CREATE USER user01 IDENTIFIED BY user01
    DEFAULT TABLESPACE users
    TEMPORARY TABLESPACE temp;

    Then you granted the following privileges to user01 by executing the following command:

    SQL> GRANT CREATE SESSION, CREATE TABLE TO user01;

    Which two statements are true in this scenario? (Choose two)

    A.The user can not create tables
    B.The user can create tables
    C.The user cannot query any tables
    D.The user can query tables in other schemas if the table owner has granted the SELECT privilege

  2. #2
    Membre émérite
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Novembre 2007
    Messages
    419
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Novembre 2007
    Messages : 419
    Par défaut
    bonsoir,

    il n'en a pas besoin vraisemblablement parce que la définition de la table est créée mais aucun segment physique ne lui a été attribué, le paramètre deferred_segment_creation étant à true par défaut (en tout cas en 11g) :
    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
     
    SQL> create user titi default tablespace users identified by toto;
     
    Utilisateur crÚÚ.
     
    SQL> grant create session, create table to titi;
     
    Autorisation de privilÞges (GRANT) acceptÚe.
     
    SQL> alter system set deferred_segment_creation=false;
     
    SystÞme modifiÚ.
     
    SQL> conn titi/toto
    ConnectÚ.
     
     
    SQL> create table tutu (id number);
    create table tutu (id number)
    *
    ERREUR Ó la ligne 1 :
    ORA-01950: pas de privilÞges sur le tablespace 'USERS'
     
     
    SQL> conn /as sysdba
    ConnectÚ.
    SQL> alter system set deferred_segment_creation=true;
     
    SystÞme modifiÚ.
     
    SQL> conn titi/toto
    ConnectÚ.
    SQL> create table tutu (id number);
     
    Table crÚÚe.
    si le user doit créer physiquement un segment (lors de la création ou lors d'un insert), il a besoin du quota. on :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SQL> insert into tutu values (1);
    insert into tutu values (1)
                *
    ERREUR Ó la ligne 1 :
    ORA-01950: pas de privilÞges sur le tablespace 'USERS'

  3. #3
    Membre Expert

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Par défaut
    Salut Heaven93

    Merci pour ces explications en particulier concernant ce paramètre deferred_segment_creation qui - je viens de vérifier - ne figurent ABSOLUMENT pas dans les transparents 'Administration Workshop I' fournis par Oracle... Personnellement je trouve que ces explications sont tout sauf accessoires.
    Bref.

    A noter aussi cette option facultative que l'on peut spécifier lors de la création d'une table :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    SQL> create table test013 (cn number) segment creation immediate;
    create table test013 (cn number) segment creation immediate
    *
    ERROR at line 1:
    ORA-01536: space quota exceeded for tablespace 'USERS'
     
    SQL> create table test013 (cn number);
     
    Table created.
     
    SQL>

  4. #4
    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
    On a parlé à diverses occasions du mécanisme de création de segment différée, par exemple ici : http://www.developpez.net/forums/d11...ence-sous-11g/.

    Concernant votre préparation de certif, effectivement les cours officiels de chez Oracle sont censés traiter à peu près tous les détails qui peuvent apparaître lors de l'examen, et constituent une bonne ressource primaire de préparation. Si vous maîtrisez tout ce qui figure dans ces cours, vous réussirez sans souci votre examen.
    Néanmoins, le cours officiel reste uniquement un point de départ, à compléter par des lectures complémentaires (la doc !) et de la pratique sur le sujet.

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

Discussions similaires

  1. Nécessité de définir un constructeur de copie
    Par LinuxUser dans le forum C++
    Réponses: 12
    Dernier message: 31/07/2013, 15h17
  2. [prg jeux ]Définir l'intersection de deux rectangles
    Par mat.M dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 30/07/2003, 18h11
  3. Définir une appli JEE avec JB7 Entreprise
    Par polo54 dans le forum JBuilder
    Réponses: 4
    Dernier message: 10/06/2003, 11h48
  4. [RAVE] Définir un imprimante...
    Par FW-S dans le forum Rave
    Réponses: 2
    Dernier message: 13/03/2003, 15h15
  5. Comment définir le type matrice ?
    Par charly dans le forum Langage
    Réponses: 7
    Dernier message: 15/06/2002, 21h01

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