Administration d’une Base de Données sous Oracle
Administration d’une base de Données sous Oracle_____________________ Page 1 sur 6
Lejeune Session 2006
Axel
ADMINISTRATION
D’UNE BASE DE
DONNEES SOUS
ORACLE
Compétences recouvertes par cette activité professionnelle :
- C24 : Installer un SGBD
- C37 : Administrer une base de données
- Programmation : Script d’administration PL/SQL
Sommaire
I. Introduction
II. Objectif
III. Etapes de réalisation
IV. Problèmes rencontrés et solutions apportées
V. Conclusion
Administration d’une Base de Données sous Oracle
Administration d’une Base de Données sous Oracle _____________________ Page 1 sur 5
I. Introduction
Cette action professionnelle a été la dernière étape de trois séminaires effectués dans le
cadre de notre formation d’administrateur de base de données. Le premier séminaire avait
pour but de concevoir une nouvelle base de données, puis au second minaire nous avons
réalisé des procédures en PL/SQL et enfin terminé par l’administration de base de données.
Cette activité a été réalisé en équipe, nous avons alors travaillé ensemble sur chacune des
étapes, cela afin que chacun comprenne le déroulement du TP et que nous soyons cohérents
sur ce que nous réalisons. J’ai donc été amené à assurer les fonctions de bases
d’administration sur une base de données Oracle 9i.
II. Objectif
L’objectif de cette activité était la création et l’administration d’une base de donnée
pour une entreprise de location de véhicule.
LOCAUTO a pour but de simplifier la gestion d’une entreprise louant des voitures.
Elle permet d’insérer des données à n’importe quel moment, ou d’y faire des modifications.
Les clients pourront consulter cette base de chez eux, ils auront un gain de temps en pouvant
réserver à distance.
Les outils utilisés
- ORACLE version 9i
- AMC Designer
- Outils bureautiques pour écrire les scripts.
L’administration de la base de données consistait à installer dans un premier temps
l’environnement de travail, puis de créer les instances de Base de Données. Ensuite on a crée
des utilisateurs et géré les droits d’accès aux données.
La base de donnée LOCAUTO a été réalisée pour une entreprise de location de
véhicule et également pour que les clients puissent consulter les voitures en location via un
site Internet.
La base de donnée LOCAUTO permet de garder toutes traces de voitures déjà louées,
mais également les réservations futur ou même en cours. Elle est accessible aux clients, aux
concessionnaires, et à l’entreprise de location.
Cependant, afin de conserver l'intégrité de la base de donnée, il était nécessaire de
définir à chacun des utilisateurs des droits d'accès. Ces droits limitent l'accès des utilisateurs à
certaines informations de la base et leurs interdisent certaines actions.
III. Etapes de réalisation
Cette action professionnelle a été réalisée en plusieurs étapes :
A) Installation d’Oracle version 9i :
Nous avons tout d’abord installé le logiciel Oracle 9i pour notre projet.
Administration d’une Base de Données sous Oracle
Administration d’une Base de Données sous Oracle _____________________ Page 2 sur 5
B) Création de la base de données:
Pour la création de la base de données la première étape a été de créer le modèle
conceptuel de données. Puis ensuite nous l’avons convertit en modèle physique. Le modèle
conceptuel et le modèle physique nous ont servit pour la réalisation du script de création de la
base. Ensuite nous nous sommes penchés sur la création des scripts pour le remplissage des
tables.
C) Gestion de l’occupation des disques
Notre première action pour l’administration a été de gérer l’occupation des disques.
Pour cela nous avons fait un calcul approximatif de la taille totale de chaque table. Ce calcul
prend en compte le nombre d’enregistrements d’une table, la taille moyenne d’un
enregistrement, et les perspectives d’évolution de cette table. Ce calcul n’est pas très
significatif, c’est-à-dire qu’il ne serait pas pris en compte en entreprise, mais il permet de
mieux nous rendre compte de l’importance de la gestion de l’occupation des disques.
Dans le but d’optimiser cette gestion, nous avons modifié nos requêtes de création de
tables, et nous avons assigné chaque table à un tablespace. Un tablespace est un espace
logique de stockage de données, dans Oracle. C’est dans cet espace que sont stockées les
tables. De plus, afin d’améliorer le temps de réponse des requêtes, nous avons fait en sorte de
mettre des tables souvent utilisées en même temps dans des tablespaces différents.
D) Gestion des utilisateurs
Dans la gestion des utilisateurs, il y a trois aspects à prendre en compte : les rôles, les
profils et les comptes.
Les rôles :
Créer des rôles consiste à donner un ensemble de droits à des utilisateurs sur une ou
plusieurs tables de la base de données. Un utilisateur peut avoir plusieurs rôles.
Exemple de Script de rôle :
CREATE ROLE "R_GESTION" NOT IDENTIFIED;
GRANT DELETE ON "LOCAUTO"."CLIENT" TO "R_GESTION";
GRANT DELETE ON "LOCAUTO"."COMMANDE" TO "R_GESTION";
GRANT DELETE ON "LOCAUTO"."LOCATION" TO "R_GESTION";
GRANT INSERT ON "LOCAUTO"."CLIENT" TO "R_GESTION";
GRANT INSERT ON "LOCAUTO"."COMMANDE" TO "R_GESTION";
GRANT INSERT ON "LOCAUTO"."LOCATION" TO "R_GESTION";
GRANT SELECT ON "LOCAUTO"."CLIENT" TO "R_GESTION";
GRANT SELECT ON "LOCAUTO"."COMMANDE" TO "R_GESTION";
GRANT SELECT ON "LOCAUTO"."LOCATION" TO "R_GESTION";
GRANT UPDATE ON "LOCAUTO"."CLIENT" TO "R_GESTION";
GRANT UPDATE ON "LOCAUTO"."COMMANDE" TO "R_GESTION";
GRANT UPDATE ON "LOCAUTO"."LOCATION" TO "R_GESTION";
CREATE ROLE "R_CLIENT" NOT IDENTIFIED;
GRANT "R_TARIF" TO "R_CLIENT";
GRANT "R_VOITURE_SELECT" TO "R_CLIENT";
Droit " Delete" sur
les tables Client,
Commande,
Location.
Droit " Insert" sur les
tables Client,
Commande,
Location.
Droit " Select" sur les
tables Client,
Commande,
Location.
Droit " Update" sur
les tables Client,
Commande,
Location.
Script du rôle R_Client qui attribue
deux rôles existant, le rôle R_Tarif
et R_Voiture.
Administration d’une Base de Données sous Oracle
Administration d’une Base de Données sous Oracle _____________________ Page 3 sur 5
Les profils :
Les profils servent à limiter les ressources au niveau session et au niveau appel (nombre
de sessions possible, temps de connexion, …), et à rer les mots de passe (durée de vie du
mot de passe, nombre de mauvaises tentatives avant de bloquer le compte, …).
Pour l’administration des comptes de notre base de donnée, nous avons créé cinq profils,
un pour le directeur, un pour les mécaniciens, un pour les vendeurs et deux pour les clients
(particuliers et entreprises).
Exemple de script de profil :
CREATE PROFILE "CLIENT" LIMIT
IDLE_TIME 15
SESSIONS_PER_USER 1
LOGICAL_READS_PER_SESSION 3000
LOGICAL_READS_PER_CALL 500
FAILED_LOGIN_ATTEMPTS 3
PASSWORD_GRACE_TIME 2
PASSWORD_LIFE_TIME 10;
Les comptes :
Ensuite, nous avons pu créer nos comptes utilisateurs. Lors de la création d’un
utilisateurs, on lui associe un profil, un ou plusieurs rôle(s), un tablespace par défaut pour
créer des tables, un tablespace temporaire pour ses requêtes et les quotas de l’utilisateur sur
les différents tablespaces créés dans la base de données.
Exemple de script d’utilisateur :
CREATE USER "DIRECTEUR"
IDENTIFIED BY "directeur"
DEFAULT TABLESPACE "TS_DEFAULT"
TEMPORARY TABLESPACE "TS_TEMP"
PROFILE "DIRECTEUR"
QUOTA UNLIMITED ON "TS_CAISSE",
QUOTA UNLIMITED ON "TS_CAISSE_INDEX"
QUOTA UNLIMITED ON "TS_CLIENT"
QUOTA UNLIMITED ON "TS_CLIENT_INDEX"
QUOTA UNLIMITED ON "TS_COMMANDE"
QUOTA UNLIMITED ON "TS_COMMANDE_INDEX"
QUOTA UNLIMITED ON "TS_COMPOSE"
QUOTA UNLIMITED ON "TS_COMPOSE_INDEX"
QUOTA UNLIMITED ON "TS_LOCATION"
QUOTA UNLIMITED ON "TS_LOCATION_INDEX"
QUOTA UNLIMITED ON "TS_PAS_EVOLUTION"
QUOTA UNLIMITED ON "TS_PAS_EVOLUTION_INDEX"
QUOTA UNLIMITED ON "TS_VOITURE"
QUOTA UNLIMITED ON "TS_VOITURE_INDEX"
QUOTA 50 K ON "TS_DEFAULT"
QUOTA 50 K ON "TS_TEMP"
ACCOUNT UNLOCK;
GRANT "CONNECT" TO "DIRECTEUR";
GRANT "R_DIRECTEUR" TO "DIRECTEUR";
Temps d’inactivité autorisé = 15 minutes
Nombre de session autorisée 1
Le client possède 3000 Ko par
session et 500 Ko par requête.
Le compte est verrouillé à la
3ème erreur d’authentification.
Le mot de passe expire dans 10 jours
avec une période de grâce de 2 jours
avant le verrouillage du compte.
Mot de Passe
Quota d’écriture sur les TS
par défaut et Temporaire.
Compte non verrouiller
Droit system connect
Attribution du rôle R_Directeur
Attribution du tablespace
par défaut et temporaire
Administration d’une Base de Données sous Oracle
Administration d’une Base de Données sous Oracle _____________________ Page 4 sur 5
E) Script PL/SQL :
Pour la création des comptes utilisateurs pour les clients un script de création
automatique des utilisateurs a été mis en place pour gagner du temps.
set serveroutput on
DECLARE
var varchar(500);
vprenom locauto.client.prenom_client%type;
vnom locauto.client.nom_client%type;
vlogin varchar(20);
varindic number(2) :=0;
varuser all_users.username%type;
vargrant varchar(100);
vargrant2 varchar(100);
CURSOR create_user IS
SELECT nom_client, prenom_client
FROM locauto.client client
ORDER BY nom_client, prenom_client;
BEGIN
OPEN create_user;
LOOP
FETCH create_user into vnom, vprenom;
EXIT WHEN create_user%notfound;
vlogin := SUBSTR (vprenom,1,1) || vnom;
DBMS_OUTPUT.PUT_LINE (vlogin);
var := 'CREATE USER ' || vlogin;
var := var || ' IDENTIFIED BY ' || vlogin;
var := var || ' DEFAULT TABLESPACE TS_DEFAULT';
var := var || ' TEMPORARY TABLESPACE TS_TEMP';
var := var || ' PROFILE CLIENT';
var := var || ' PASSWORD EXPIRE';
vargrant := 'GRANT "R_CLIENT" TO ' || vlogin;
vargrant2 := 'GRANT "CREATE SESSION" TO ' || vlogin;
BEGIN
SELECT username into varuser
FROM all_users
WHERE username = upper(vlogin);
varindic := 1;
EXCEPTION
WHEN no_data_found
THEN null;
END;
IF varindic != 1
THEN execute immediate var;
execute immediate vargrant;
execute immediate vargrant2;
ELSE DBMS_OUTPUT.PUT_LINE ( 'L''identifiant ' || vlogin || ' existe déjà');
varindic := 0;
END IF;
END LOOP;
cLose create_user;
END;
/
Déclaration des
variables
Utilisation des
variables
1 / 6 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !