manager c'était le mdp par défaut des vielles version d'Oracle. Ce n'est certainement pas celui-là, à moins qu'il ait été explicitement mis à cette valeur lors de l'installation ou de la création de la base par celui qui l'a fait.
manager c'était le mdp par défaut des vielles version d'Oracle. Ce n'est certainement pas celui-là, à moins qu'il ait été explicitement mis à cette valeur lors de l'installation ou de la création de la base par celui qui l'a fait.
Comment me connecter sur l'Oracle que je viendrai d'installer sur mon nouveau PC alors ? Pour rappel j'avais préparé la commande suivante :
Merci par avance
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 impdp system/manager dumpfile=exp_db2121.dump logfile=db2121_imp.log
J'aurai une dernière question.
J'ai voulu faire un test avant d'importer l’intégralité de mon unique schéma LEARNINGSQL de l'Oracle de mon ancien poste sur l'Oracle de mon nouveau poste (que j'ai installé avec succès) sur 2 tables.
J'ai executé le code suivant :
Or un message d'erreur apparait lors de l'import sur l'Oracle de mon nouveau poste en m'indiquant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 set test=TOTO,TATA set mg_tables=%test% :: Export des tables depuis l'ancienne base' :: A executer sur l'ancienne base' expdp learningsql/1234 dumpfile=dbtest2121.dump logfile=dbtest2121_exp.log tables=(%mg_tables%) statistics="none" :: Import des tables dans la nouvelle base :: A executer sur la nouvelle base impdp system/manager dumpfile=dbtest2121.dump logfile=dbtest2121_imp.log
ORA-39083: Echec de la création du type d'objet TABLE:"LEARNINGSQL"."TOTO" avec erreur :
ORA-01918: l'utilisateur 'LEARNINGSQL' n'existe pas
Le même message s'affiche pour la seconde table nommée TATA
Mais lorsque j'effectue l'import après avoir créé l'utilisateur (cf. code complet ci-dessous) l'import se termine avec succès :
Ma question est alors, doit-on obligatoirement importer l'ensemble du schéma LEARNINGSQL de l'Oracle de mon ancien poste sur le nouveau pour que l'utilisateur LEARNINGSQL soit créé automatiquement ; je comprendrai alors qu'il n'est pas été créé automatiquement précédemment du fait que j'importe seulement 2 tables. Ou alors vais-je avoir également le même code d'erreur lié au fait qu'il ne créera pas automatiquement l'utilisateur LEARNINGSQL ? Car pour rappel ; si l'on remonte le fil de discussion il m'a été indiqué que l'utilisateur LEARNINGSQL serait créé automatiquement lors de l'étape imp dans le code ci-après en me connectant en SYSTEM :
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 set test=TOTO,TATA set mg_tables=%test% :: Export des tables depuis l'ancienne base' :: A executer sur l'ancienne base' expdp learningsql/1234 dumpfile=dbtest2121.dump logfile=dbtest2121_exp.log tables=(%mg_tables%) statistics="none" :: connexion à SQLPLUS sur l'Oracle du nouveau poste' sqlplus system/manager ; create user learningsql identified by 1234 ; grant dba to user learningsql ; exit ; :: Import des tables dans la nouvelle base :: A executer sur la nouvelle base impdp learningsql/1234 dumpfile=dbtest2121.dump logfile=dbtest2121_imp.log
Merci par avance pour vos éclaircissements.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 :: EXPORT DE TOUT LE SCHEMA DE L'ANCIENNE BASE' :: A executer sur l'ancienne base' expdp learningsql/1234 dumpfile=dbtest2121.dump logfile=dbtest2121_exp.log :: IMPORT DU SCHEMA DE L'ANCIENNE BASE DANS LA NOUVELLE BASE' :: A executer sur la nouvelle base impdp system/manager dumpfile=dbtest2121.dump logfile=dbtest2121_imp.log
Oui le user aurait dû être créé. Tu as quoi dans la log de l'import?
Il y a le texte suivant dans le fichier dbtest2121_imp.log :
Dois-je en conclure que la seule manière d'importer mes tables est de créer l'utilisateur LEARNINGSQL au préalable en lui administrant les privilèges nécessaires ?
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 ;;; Import: Release 12.1.0.2.0 - Production on Mar. Févr. 15 14:53:30 2022 Copyright (c) 1982,2014, Oracle and/or its affiliates. All rights reserved. ;;; Connecté à : Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options Table maître "System"."SYS_IMPORT_FULL_01" chargée/déchargée avec succès Démarrage de "SYSTEM"."SYS_IMPORT_FULL_01" : system/****** dumpfile=dbtest2121.dump logfile=dbtest2121_imp.log Traitement du type d'objet TABLE_EXPORT/TABLE/TABLE ORA-39083: Echec de la création du type d'objet TABLE:"LEARNINGSQL"."TOTO" avec erreur : ORA-01918: l'utilisateur 'LEARNINGSQL' n'existe pas SQL en échec : CREATE TABLE "LEARNINGSQL"."TOTO" ("DEPT" VARCHAR2 (3 BYTE) NOT NULL ENABLE, "AGECALC" NUMBER) SEGMENT CREATION IMMEDIATE PCTFREE 10 PCTUSED 40 I ORA-39083: Echec de la création du type d'objet TABLE:"LEARNINGSQL"."TOTO" avec erreur : ORA-01918: l'utilisateur 'LEARNINGSQL' n'existe pas SQL en échec : CREATE TABLE "LEARNINGSQL"."TATA" ("DEPT" VARCHAR2 (3 BYTE) NOT NULL ENABLE, "AGECALC" NUMBER) SEGMENT CREATION IMMEDIATE PCTFREE 10 PC Traitement du type d'objet TABLE_EXPORT/TABLE/TABLE_DATA Traitement du type d'objet TABLE_EXPORT/TABLE/INDEX/INDEX ORA-39112: Type d'objet dépendant INDEX:"LEARNINGSQL"."TOTO_CLE1_IDX" ignoré, la création du type d'objet de base TABLE:"LEARNINGSQL"."TOTO" a échoué Traitement du type d'objet TABLE_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS Traitement du type d'objet TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS Traitement du type d'objet TABLE_EXPORT/TABLE/STATISTICS/MARKER Travail "SYSTEM"."SYS_IMPORT_FULL_01" terminé avec 3 erreur(s) à Mar. Févr. 15 14:53:37 2022 elapsed 0 00:00:06
Dans la pratique, les opérations export datapump et import datapump se font le plus souvent sur ce compte system,
alors je te conseille de RFEFAIRE l'export du schéma entier comme ceci
puis créer tes tablespaces à l'identique de l'ancienne base ( même nom ) et SURTOUT TU N'AS PAS BESOIN DE CREER LE USER AVANT
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3expdp system/motdepasse@ancien_poste directory= schemas= dumpfile= logfile=
L'IMPORT
tu copies le fichier dump vers le nouveau poste
ensuite tu fais l'import
Ensuite vue que tu as exporter sous le system, tout se créer automatiquement (le USER du schemas, .. )
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2impdp system/motdepasse@nouveau_poste dumpfile= directory= schemas=
et vérifie, après l'import sous sqlplus sur le nouveau poste
Normalement tout est ok, c'est aussi simple que ça !!!!!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 select username from dba_users where username= select owner, object_type, object_name from dba_objects where owner=
Merci beaucoup pour votre aide,
Malheureusement je n'ai pas le mot de passe du compte system de l'ancien poste, la personne ayant installé Oracle n'étant plus là depuis des années.
Ai-je donc comme seule solution de créer l'utilisateur "LEARNINGSQL" au préalable de l'import comme je l'ai mentionné précédemment ?
Sachant que je lui accorderai les privilèges administrateurs et je n'aurai pas de TABLESPACES à créer car j'utilise uniquement celles par défaut (même si non conseillé comme vanagreg m'a dit).
Effectivement, si tu n'as pas le mot de passe du SYSTEM pour faire ton export schema de l'ancien poste, donc
tu es limité pour faire ton export sous le schéma exporté, et sur le nouveau poste créer l'utilisateur de l'ancien poste avec les
privilèges nécessaires sur les tablespace(s) des data de l'ancien poste !
C'est noté ; je reviens vers vous car j'ai cependant un problème. Sur ma nouvelle base j'ai la possibilité de me connecter avec n'importe quel mot de passe lorsque je le fais en sysdba.
Pour exemple :
fonctionne alors que le mot de passe de learningsql est "1234"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 sqlplus learningsql/4444 as sysdba
fonctionne alors que le mot de passe de system est "manager"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2sqlplus system/dd as sysdba
fonctionne également.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2sqlplus / as sysdba
Toutes ces lignes de codes me permettent de me connecter à Oracle, ce qui n'est pas sécuritaire, n'importe qui qui prendrait mon PC pourrait alors se connecter à Oracle s'il était au courant de cela...
Comment se fait-il qu'en tappant la commande "as sysdba" le mot de passe de l'utilisateur n'est pas pris en compte ? Comment faire pour qu'il le soit ?
Lors de l'étape d'installation, à l'étape 4 sur 9 il m'était proposer de choisir dans l'onglet "Sélection des utilisateurs du r[...]" entre :
- "Employer l'utilisateur Windows actuel"
- "Créer un utilisateur Windows"
- "Utiliser un compte integré Windows"
J'ai pour ma part choisit cette dernière option. Est-ce du à cela ? Dois-je installer de nouveau Oracle en choisissant une autre option ?
Merci d'avance pour votre aide
Bonjour,
En effet quand tu te connectes depuis le serveur à SQL*Plus en sysdba le mot de passe n'est pas vérifié, c'est pour cela que tu peux indiquer n'importe quel mot de passe bidon. Ton user fait donc certainement partie du groupe ORA_DBA. Si les autres utilisateurs qui utilisent ton PC font partie de ce groupe, ils pourront faire pareil.
Retire les de ce groupe si tu ne veux pas qu'ils puissent le faire.
Merci beaucoup pour votre réponse ! Et comment ferais-je après cela pour me connecter en SYSDBA s'il vous plait ? Je pourrais le faire uniquement en tant qu'utilisateur SYS c'est bien cela ? Il va donc falloir que j'attribue un mot de passe à l'utilisateur SYS, et ce sera la seule possibilité de se connecter en SYSDBA ?
Bonjour,
Oui il faudra préciser le mot de passe dans ce cas là. Mais normalement tu n'as pas besoin d'utiliser SYS. Si tu as ton propre user Oracle pour te connecter à la base, et si tu lui octroies le privilège SYSDBA, alors tu pourras te loguer en SYSDBA (avec le mot de passe de ton user).
Code : Sélectionner tout - Visualiser dans une fenêtre à part sqlplus learningsql/1234 as sysdba
L'utilisateur SYS étant (d'origine) le seul utilisateur ayant le "SUPER PRIVILEGE SYSTEME" je ne voudrais pas l'octroyer à un autre utilisateur, par soucis de sécurité de la base paraitrait-il qu'il est mieux que seul l'utilisateur SYS ait ce privilège ?
Je comptais octroyer le role de DBA à l'utilisateur OPERATEUR (au même titre que l'utilisateur SYSTEM qui l'a par défaut).
Pensez vous cela plus judicieux ?
En effet le privilège SYSDBA n'est à attribuer qu'aux administrateurs de la base de données.
Le rôle DBA est lui même très puissant, il faut voir quel est le besoin réel.
Lors de mon import je rencontre le problème suivant :
Je ne comprends pas car lorsque j'essaie de recréer ces index manuellement après l'import il refuse de le faire en m'indiquant qu'il y a des doublons or cela est faux ! J'ai regardé sur l'ensemble de ces tables en faisant un group by sur la variable que je veux définir en clé primaire et les effectifs sont bien tous à 1 ! De plus sur mon ancienne base ces index existent bel et bien...j'avoue être complètement perdu. De plus il est notifié 5 erreurs or il n'y en a que 4.
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
47
48
49
50 ;;; Import: Release 12.1.0.2.0 - Production on Mer. Mars 16 16:27:40 2022 Copyright (c) 1982, 2014, Oracle and/or its affiliates. All rights reserved. ;;; Connecté à : Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options Table maître "OPERATEUR"."SYS_IMPORT_FULL_01" chargée/déchargée avec succès Démarrage de "OPERATEUR"."SYS_IMPORT_FULL_01" : operateur/******** dumpfile=exp_db2121.dump logfile=imp_db2121.log Traitement du type d'objet SCHEMA_EXPORT/USER Traitement du type d'objet SCHEMA_EXPORT/SYSTEM_GRANT Traitement du type d'objet SCHEMA_EXPORT/ROLE_GRANT Traitement du type d'objet SCHEMA_EXPORT/DEFAULT_ROLE Traitement du type d'objet SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA Traitement du type d'objet SCHEMA_EXPORT/TYPE/TYPE_SPEC Traitement du type d'objet SCHEMA_EXPORT/TABLE/TABLE Traitement du type d'objet SCHEMA_EXPORT/TABLE/TABLE_DATA . . import : "OPERATEUR"."LALA" 328.1 MB 1845061 lignes . . import : "OPERATEUR"."LOLO" 226.0 MB 1845061 lignes . . import : "OPERATEUR"."LALA" 328.1 MB 1845061 lignes . . import : "OPERATEUR"."LOLO" 226.0 MB 1845061 lignes . . import : "OPERATEUR"."LILI" 328.1 MB 1845061 lignes . . import : "OPERATEUR"."LELE" 226.0 MB 1845061 lignes . . import : "OPERATEUR"."DEPARTEMENT" 7.929 KB 102 lignes . . import : "OPERATEUR"."PERIODENUM1717" 5.421 KB 40 lignes . . import : "OPERATEUR"."PSEUDO_REG" 5.281 KB 29 lignes . . import : "OPERATEUR"."TYPE_SITE" 5.179 KB 10 lignes Traitement du type d'objet SCHEMA_EXPORT/TABLE/COMMENT Traitement du type d'objet SCHEMA_EXPORT/PACKAGE/PACKAGE_SPEC Traitement du type d'objet SCHEMA_EXPORT/FUNCTION/FUNCTION Traitement du type d'objet SCHEMA_EXPORT/PROCEDURE/PROCEDURE Traitement du type d'objet SCHEMA_EXPORT/PACKAGE/COMPILE_PACKAGE/PACKAGE_SPEC/ALTER_PACKAGE_SPEC Traitement du type d'objet SCHEMA_EXPORT/FUNCTION/ALTER_FUNCTION Traitement du type d'objet SCHEMA_EXPORT/PROCEDURE/ALTER_PROCEDURE Traitement du type d'objet SCHEMA_EXPORT/VIEW/VIEW Traitement du type d'objet SCHEMA_EXPORT/PACKAGE/PACKAGE_BODY Traitement du type d'objet SCHEMA_EXPORT/TABLE/INDEX/INDEX Traitement du type d'objet SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINT Traitement du type d'objet SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS Traitement du type d'objet SCHEMA_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT Traitement du type d'objet SCHEMA_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS Traitement du type d'objet SCHEMA_EXPORT/STATISTICS/MARKER OPERATEUR.DEPARTEMENT_DEPT_IDX : sqlerrm = ORA-20000: Unable to set values for index DEPARTEMENT_DEPT_IDX: does not exist or insufficient privileges OPERATEUR.PERIODENUM1717_ANNEE_IDX : sqlerrm = ORA-20000: Unable to set values for index PERIODENUM1717_ANNEE_IDX: does not exist or insufficient privileges OPERATEUR.PSEUDO_REG_PSEUDO_REG_IDX : sqlerrm = ORA-20000: Unable to set values for index PSEUDO_REG_PSEUDO_REG_IDX: does not exist or insufficient privileges OPERATEUR.TYPE_SITE_TYPE_SITE_IDX : sqlerrm = ORA-20000: Unable to set values for index TYPE_SITE_TYPE_SITE_IDX: does not exist or insufficient privileges Importing statistics failed for 4 object(s); Traitement du type d'objet SCHEMA_EXPORT/MATERIALIZED_VIEW Travail "OPERATEUR"."SYS_IMPORT_FULL_01" terminé avec 5erreur(s) à Mer. Mars 16 16:31:14 2022 elapsed 0 00:03:32
Il est à noter que mes autres tables ont des index et ils ont bien été créés, donc mon utilisateur a bien les privilèges suiffisant, (je lui ai attribué GRANT DBA).
Merci pour votre aide
Sr DBA Oracle / MS-SQL / MySQL / Postgresql / SAP-Sybase / Informix / DB2
N'oublie pas de consulter mes articles, mon blog, les cours et les FAQ SGBD
Attention : pas de réponse technique par MP : pensez aux autres, passez par les forums !
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager