Conception Et Réalisation (Oracle) by Grare Stéphane - HTML preview

PLEASE NOTE: This is an HTML preview only and some elements such as links or page numbers may be incorrect.
Download the book in PDF, ePub, Kindle for a complete version.

Utilitaire IMP

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

index-93_1.png

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

index-98_1.jpg

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

index-99_1.png

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