![Free-eBooks.net](/resources/img/logo-nfe.png)
![All New Design](/resources/img/allnew.png)
L’utilitaire IMP permet d’importer une base ou une partie de base à partir d’un fichier généré
par l’utilitaire EXP. L’import est utilisé pour :
92
1. Restaurer une base à la suite de sa perte totale ou partielle.
Lorsque le DBA veut restaurer toute une base, il peut suivre les étapes suivantes :
- Faire un export complet de la base.
- Faire une sauvegarde par l’OS de tous les fichiers de la base (par précaution).
- Supprimer les fichiers de la base,
- Créer une nouvelle base ayant les mêmes caractéristiques initiales de la base à importer,
- Faire une importation du fichier export.
2. Réorganiser ou restaurer un schéma totalement ou partiellement (quelques tables).
Lorsque l’on veut restaurer ou réorganiser des tables d’un schéma, suivre les étapes
suivantes :
- Faire un export des tables à restaurer ou réorganiser
- Supprimer ces tables dans le schéma par un DROP table ou utilisation de l’option Destroy
de l’utilitaire.
- Faire un import du fichier d’export
La suppression des tables est nécessaire, car lors de l’import, l’utilitaire essaie les créer. Or, si
elles existent déjà, une erreur se produit. L’utilitaire donne la possibilité d’ignorer l’erreur
(IGNORE = Y). Dans ce cas, IMP ne recrée pas la table ; en revanche, il y insère le contenu
du fichier d’export.
3. Migrer une base d’une version d’Oracle vers une autre ou d’un système d’exploitation vers
un autre. Mêmes étapes que pour le point 1.
Paramètres d'import
93
Mise en oeuvre des utilitaires EXP et IMP
Il existe deux façons de mettre en oeuvre ces utilitaires, soit en mode commande soit en
utilisant un fichier de paramètres.
Mode commande :
Exemple1 : Export de la base complétée avec ses données.
C:\> exp userid=system/afpa file=c:\backup\export_full.dmp
log=c:\log\export_full.log full=y rows=y
Connexion en tant que SYSTEM,
Export entière full=Y,
Dans le fichier export_full.dmp
Avec les données rows=y
Sauvegarde de l’exécution (messages) dans le fichier
log=c:\control\export_full.log
C:\> imp userid=system/afpa file=c:\backup\export_full.dmp
log=c:\log\export_full.log full=y rows=y
Exemple 2 : Export/Import du Schéma MARTIN :
C:\> exp userid=system/afpa file=c:\backup\export_full.dmp
log=c:\log\export_full.log owner=MARTIN
C:\> imp userid=martin/afpa file=c:\backup\export_full.dmp
log=c:\log\export_full.log owner=MARTIN
Import du schéma MARTIN dans le schéma ROGER
C:\> imp userid=system/afpa file=c:\backup\export_full.dmp
log=c:\log\export_full.log fromuser=MARTIN touser=ROGER
Exemple 3 : Export/Import table EMPLOYE du Schéma MARTIN :
C:\> exp userid=system/afpa file=c:\backup\export_full.dmp
log=c:\log\export_full.log tables=MARTIN.EMPLOYE
C:\> imp userid=martin/afpa file=c:\backup\export_full.dmp
log=c:\log\export_full.log tables= MARTIN.EMPLOYE
Exemple 4 : Export du tablespaces USER :
C:\> exp userid=system/afpa file=c:\backup\export_full.dump
log=c:\log\export_full.log tablespaces=USER
Mode avec fichier paramètre :
94
La création de scripts permet de rendre l’exécution de l’utilitaire plus facile, cela évite de
retaper les lignes en mode commande. Les utilitaires d'export et import permettent d'indiquer
un fichier de paramètres via l'option parfile.
Exemple d’un fichier de paramètres : parmexp.prm
userid=system/afpa
file=c:\exp_martin.dmp
log=c:\exp_martin_log.txt
owner=martin
rows=y
Utilisation
exp parfile=c:\backup\parmexp.prm
imp parfile=c:\backup\parmexp.prm
95
Sécurité de la base
Pour la gestion de la sécurité, Oracle 11g permet :
· De définir les utilisateurs qui peuvent se connecter à la base de données,
· De définir dans quel(s) tablespaces(s) un utilisateur peut créer des objets (éventuellement
aucun),
· De limiter l’utilisation des ressources système,
· De définir les droits de chaque utilisateur à l’intérieur de la base de données.
· De définir la politique de gestion de mots de passe.
Dans une base de données Oracle, les droits des utilisateurs sont gérés avec la notion de
privilège. Un privilège est le droit :
· D’exécuter un ordre SQL en général (exemple, modifier une table) : Notion de privilège
système,
· D’accéder à un objet d’un autre utilisateur (exemple : mettre à jour les données de la base
article) : notion de privilège objet.
Les privilèges peuvent être attribués directement aux utilisateurs ou par l’intermédiaire de
rôles. Un rôle est un regroupement nommé de privilèges (système et objets) qui peut être
attribué en tant que tel à un utilisateur, cet utilisateur reçoit alors automatiquement les
privilèges contenus dans le rôle. Les rôles facilitent la gestion des droits Oracle propose par
ailleurs une fonctionnalité d’audit qui permet de tracer l’activité des utilisateurs dans la base
de données.
Créer et modifier les utilisateurs
Mode d’identification de l’utilisateur
Pour pouvoir utiliser une base de données Oracle, un utilisateur doit pouvoir se connecter au
serveur à l’aide d’un compte de connexion. Seuls les administrateurs système ou chargés de
la sécurité sont habilités à ajouter des comptes d’identification (connexion).
Le modèle de sécurité Oracle comporte deux modes d’identification : Un utilisateur peut être
identifié par Oracle ou par le système d’exploitation. Les deux modes d’identification sont
utilisables simultanément dans la même base de données.
· Identification Oracle
L’utilisateur se connecte à la base de données en saisissant le mot clé CONNECT suivi du
nom de l’utilisateur et de son mot de passe. Exemple avec SQL*Plus :
SQL> CONNECT martin/xs123
Connecté
· Identification par le système d’exploitation
L’utilisateur se connecte sans saisir son nom et son mot de passe. Exemple avec SQL*Plus :
SQL> CONNECT /
96
Oracle ne vérifie pas le mot de passe, mais contrôle simplement que le nom de l’utilisateur,
au niveau du système d’exploitation, correspond à un nom d’utilisateur dans la base de
données. L’identification initiale est réalisée par le système d’exploitation.
Pour faire un lien entre le nom de l’utilisateur dans le système d’exploitation et le nom de
l’utilisateur dans la base de données, Oracle utilise un préfixe défini par le paramètre
OS_AUTHENT_PREFIX (par défaut égal à OPS$ dans le fichier init.ora). Par exemple,
l’utilisateur ayant pour nom martin au niveau du système d’exploitation pourra se connecter à
la base de données par un CONNECT / uniquement s’il existe un compte Oracle
ops$martin. Si le paramètre OS_AUTHENT_PREFIX = ‘’, dans ce cas le nom Oracle et
système d’exploitation sont identiques.
Création d’un utilisateur
Les différentes étapes qui seront nécessaires à la création d'un utilisateur Oracle :
1. Choisir un nom d'utilisateur
2. Choisir une méthode d'authentification
3. Choisir les TABLESPACES que l'utilisateur pourra utiliser
4. Définir les quotas sur chaque TABLESPACES
5. Définir les TABLESPACES par défaut de l'utilisateur
6. Créer l'utilisateur
7. Assigner les rôles et privilèges à l'utilisateur, utilisation de l’ordre GRANT
L’ordre SQL CREATE USER permet de créer un nouvel utilisateur. En voici la syntaxe :
CREATE USER nom IDENTIFIER { BY mot_de_passe | EXTERNALLY }
[ DEFAULT TABLESPACE nom_tablespace ]
[ TEMPORARY TABLESPACE nom_tablespace ]
[ QUOTA { valeur [K | M] | UNLIMITED } on nom_tablespace [,…] ]
[ PROFILE nom_profil ]
[ PASSWORD EXPIRE ]
[ ACCOUNT { LOCK | UNLOCK} ] ;
L'administrateur de base de données créé des utilisateurs en exécutant l'ordre CREATE
USER. À ce stade, l'utilisateur n'a pas encore acquis de privilège. L'administrateur de base de
données doit ensuite les lui accorder. Les privilèges déterminent les actions que l'utilisateur
peut exécuter au niveau de la base de données. Voici la description des paramètres de l’ordre
CREATE USER :
Nom : Nom de l’utilisateur, Login du futur utilisateur.
IDENTIFIED BY mot de passe : Active l'authentification par la base de données avec le mot
de passe spécifié.
IDENTIFIED EXTERNALLY : Active l'authentification par le système d'exploitation.
DEFAULT TABLESPACE : Permet d'attribuer un TABLESPACE de donné par défaut à
l'utilisateur.
TEMPORARY TABLESPACE : Permet d'attribuer un TABLESPACE temporaire par défaut à
l'utilisateur.
QUOTA : Permet de définir le quota d'espace attribué à l'utilisateur sur un TABLESPACE
précis.
PROFILE : Permet d'attribuer un profil limitant les ressources système de l'utilisateur.
97
PASSWORD EXPIRE : Permet de faire expirer le mot de passe de l'utilisateur pour que celui-
ci le change lors de la première connexion.
ACCOUNT : Permet d'activer ou de désactiver un compte utilisateur.
Exemple
CREATE USER martin IDENTIFIED BY mod01
DEFAULT TABLESAPCE data
QUOTA UNLIMITED ON data
PASSWORD EXPIRE ;
Modification d’un utilisateur
L’ordre SQL ALTER USER permet de modifier un utilisateur.
ALTER USER nom IDENTIFIER { BY mot_de_passe | EXTERNALLY }
[ DEFAULT TABLESPACE nom_tablespace ]
[ TEMPORARY TABLESPACE nom_tablespace ]
[ QUOTA { valeur [K | M] | UNLIMITED } on nom_tablespace [,…] ]
[ PROFILE nom_profil ]
[ PASSWORD EXPIRE ]
[ ACCOUNT { LOCK | UNLOCK} ] ;
Les clauses sont les mêmes que pour la création. Par exemple, modifier le mot de passe de
l’utilisateur Martin. Modification du mot de passe et obligation d’en changer à la première
connexion.
ALTER USER martin
IDENTIFIED BY mod02
PASSWORD EXPIRES ;
Verrouillage d’un compte :
ALTER USER martin ACCOUNT LOCK;
98
Suppression d’un utilisateur
L’ordre SQL DROP USER permet de supprimer un utilisateur.
DROP USER nom [ CASCADE ] ;
L’option CASCADE est obligatoire pour un utilisateur possédant des objets. Un utilisateur
actuellement connecté ne peut être supprimé.
Trouver des informations sur les utilisateurs
Deux vues du dictionnaire de données permettent d’obtenir des informations sur les
utilisateurs : les vues qui nous seront utiles sont les vues DBA_USERS et DBA_TS_QUOTAS
(voir les vues USER_USERS qui contiendront les informations de l'utilisateur courant et
USER_TS_QUOTAS qui contiendra les informations sur les quotas de l'utilisateur courant).
DBA_USERS : Informations sur les utilisateurs
DBA_TS_QUOTAS : informations sur les quotas utilisateurs