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 :

Souci avec la BDD sous SQLPlus


Sujet :

Oracle

  1. #1
    Membre à l'essai
    Souci avec la BDD sous SQLPlus
    Bonjour, débutant sur Oracle et SQLPlus, je rencontre un souci pour me connecter à une BDD. J'ai installé une Base XE 18c et j'essaie d'éxécuter un fichier avec la sqlplus /nolog.

    Le fichier SQL que je tente d'exécuter




    Les erreurs que j'ai





    Quelqu'un sait d'où peut venir le souci ? Je bloque là dessus depuis un moment.
    Merci pour une aide éventuelle.

  2. #2
    Membre expérimenté
    Déjà, ta base de données a la nouvelle architecture dite Container/CDB/Pluggable/Multi-tenants... ce qui complexifie l'architecture et la création des users.

    Ajoute une ligne de code dans ton script pour qu'on voit si ton script s'exécute dans une base de données applicative dite PDB (Pluggable) ou bien si tu es dans le CDB$ROOT (base socle de la nouvelle architecture). Je suppose que le user est à créer dans ta base applicative, pas dans le CDB$ROOT.
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    SHOW CON_NAME


    En cherchant sur le net, je te conseille aussi vivement de passer ton client en anglais car le message d'erreur anglais est bien bien plus parlant que le français : on a la preuve que tu es dans le CDB$ROOT alors qu'en français on parle bêtement de conteneur.
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    ORA-65049: creation of local user or role is not allowed in CDB$ROOT

    En clair tu essaye de créer un user local dans le CDB$ROOT. Est-ce ce que tu veux faire ou bien tu veux le créer dans ta base PDB?

    Que donne la commande suivante : elle te dira quelle est ta base applicative.
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    select pdb_id, pdb_name, status from dba_pdbs order by pdb_name;


    En résumé, dans quelle base doit tu créer ton user? Dans la PDB ou le CDB$ROOT?
    Si c'est dans la PDB, il faudra revoir ta connexion à la base car là tu te connectes au CDB$ROOT.
    DBA Oracle
    Rédacteur du blog : dbaoraclesql.canalblog.com

  3. #3
    Membre à l'essai
    Merci Ikebukuro pour ta réponse.

    Voilà ce que j'obtiens




  4. #4
    Membre expérimenté
    Ben voilà, tu t'es connecté au CDB$ROOT : pas bon!
    Ta vraie base de donnée s'appelle XEPDB1.

    Dans ton .sql, tes deux premières lignes doivent être
    CONNECT / AS SYSDBA
    ALTER SESSION SET CONTAINER=XEPDB1;

    L'objectif est que quand tu fasses un SHOW CON_NAME le résultat soit XEPDB1 et pas CDB$ROOT.

    Tu peux aussi te connecter directement à ta base sans passer par le CDB$ROOT.
    De la lecture ici : https://oracle-base.com/articles/12c...-and-pdb-12cr1
    DBA Oracle
    Rédacteur du blog : dbaoraclesql.canalblog.com

  5. #5
    Membre à l'essai
    Merci, les privilèges ont été accordés. Mais il reste toujours des soucis.
    Le souci avec les table space, c'est normal car j'ai déjà exécuter le fichier une fois.




  6. #6
    Membre expérimenté
    Le ALTER SYSTEME qui plante, pour le paramètre de logon, doit être fait dans la base CDB$ROOT, comme le dit le message d'erreur : "Pas dans une base pluggable (donc pas dans une PDB)".
    DBA Oracle
    Rédacteur du blog : dbaoraclesql.canalblog.com

  7. #7
    Membre à l'essai
    D'accord, merci.

    En revanche, je ne comprends pas trop pourquoi y a un souci d'authentification.
    Tu vois, lorsque j'installe Oracle18c XE, je dois renseigner un identifiant et mot de passe.
    Mais cela a t-il un rapport avec le user STAGIAIRE et son mot de passe PWD du fichier InitEnvStagiaireXE.sql ?

  8. #8
    Membre expérimenté
    Est-ce que ton user STAGIAIRE a été créé dans la PDB ou dans le CDB$ROOT?

    L'idéal serait que tu te connectes à la base où est ton user STAGIAIRE :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    CONNECT SYS AS SYSDBA;


    Ensuite tu fais un
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    alter user STAGIAIRE identified by pwd;


    puis tu essayes de te connecter avec le user STAGIAIRE sur la base où tu es connecté comme SYS.
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    CONNECT STAGIAIRE

    puis tu saisi le password. C'est OK?
    DBA Oracle
    Rédacteur du blog : dbaoraclesql.canalblog.com

###raw>template_hook.ano_emploi###