Vous êtes sur la page 1sur 10

06/08/13

Gestion des utilisateurs

Forums Tutoriels Magazine FAQs Blogs Projets Chat Newsletter tudes Emploi Club Contacts

Accueil ALM Java .NET Dv. Web EDI Langages SGBD Office Solutions d'entreprise Applications Mobiles Systmes
SGBD 4D Access DB2 Firebird InterBase MySQL NoSQL Oracle PostgreSQL SQL-Server Sybase

ACCUEIL ORACLE

FORUM ORACLE

F.A.Q ORACLE

TUTORIELS ORACLE QUIZ

TUTORIELS SQL

SCRIPTS SQL

LIVRES ORACLE

Gestion des utilisateurs


Date de publication : 23/04/2004 , Date de mise a jour : 23/04/2004 Par Helyos Administration Oracle : Utilisateurs Pour revenir la page d'administration Oracle : ICI. Gestion des utilisateurs 1. Cration des utilisateurs 1.1. Introduction 1.1.1. Dfinition d'un schma 1.1.2. Dfinition d'un user 1.2. Choix du nom de l'utilisateur 1.3. Choisir la mthode d'authentification de l'utilisateur 1.3.1. Par la base de donnes 1.3.2. Par le systme d'exploitation 1.3.2.1. Configuration sur le serveur 1.3.2.2. Configuration sur le client 1.4. Choisir les TABLESPACEs que l'utilisateur pourra utiliser 1.5. Dfinir les QUOTAs de l'utilisateur 1.6. Choisir les TABLESPACEs par dfaut de l'utilisateur 1.7. Syntaxe complte de l'ordre CREATE USER 1.8. Exemples 2. Modifications d'un utilisateur 2.1. Modification de son mot de passe 2.2. Modification des quotas 2.3. Modification des TABLESPACES par dfaut 2.4. Modification du status d'un utilisateur 2.5. Syntaxe complte de l'ordre ALTER USER 3. Suppressions d'un utilisateur 3.1. Supprimer un utilisateur avec un schma vide 3.2. Supprimer un utilisateur avec son schma 3.2. Syntaxe complte de l'ordre DROP USER 4. Informations sur les utilisateurs 4.1. Descriptif de la vue DBA_USERS 4.2. Descriptif de la vue DBA_TS_QUOTAS

Gestion des utilisateurs 1. Cration des utilisateurs


Nous allons voir dans cet article comment crer et configurer un utilisateur de base de donnes ou un compte avec lequel vous pourrez vous connecter et effectuer des actions sur la base de donnes en fonctions des droits qui vous serons allous. Il est aussi bon de savoir que contrairement d'autres bases de donnes, quand vous crez un utilisateur sur une base de donnes Oracle celui-ci ne dispose d'aucun droit, pour cela reportez vous la section "Administration des rles et privilges". Voici les diffrentes tapes qui seront ncessaire la cration d'un utilisateur Oracle : Choisir un nom d'utilisateur Choisir une mthode d'authentification Choisir les TABLESPACEs que l'utilisateur pourra utiliser Dfinir les quotas sur chaques TABLESPACEs Dfinir les TABLESPACEs par dfaut de l'utilisateur Crer l'utilisateur Assigner les rles et privilges l'utilisateur

oracle.developpez.com/guide/administration/adminuser/

1/10

06/08/13

Gestion des utilisateurs

1.1. Introduction
1.1.1. Dfinition d'un schma
Un schma est une collection (ou un ensemble) nomm d'objets tels que des tables, vues, clusters, procdure et packages associs un utilisateur prcis. Quand un utilisateur de base de donnes est cre, son schma est automatiquement cre. Un utilisateur ne pourra alors tre associ qu' un seul schma et rciproquement.

1.1.2. Dfinition d'un user


Un utilisateur de base de donnes va correspondre un login qui aura reu certains privilges. Cet utilisateur sera stock dans le dictionnaire de donnes et disposera d'un espace de stockage pour ses objets qui seront alors stocks dans son schma. En Oracle on pourra assimiler un utilisateur avec son schma.

1.2. Choix du nom de l'utilisateur


La premire chose faire pour crer un nouvel utilisateur va tre de dfinir un login. Afin d'viter d'avoir trop de problmes lors de l'ajout de nouveaux utilisateurs, il est fortement recommand de metttre une stratgie de nommage en place. Par exemple tout les noms d'utilisateur devront tre compos des 6 premires lettres de leur nom, d'un "_" et de la premire lettre de leur prnom. Par exemple : Albert Durand donnera comme login durand_a. Il convient ensuite de connaitre les limitations et rgles de nommage respecter: Taille maximale 30 caractres. Ne devra contenir que des lettres de [a-z] et des chiffres [0-9]. Tout les caractres accentus ou autres sont viter. Vous pourrez galement utiliser les symboles #, $, _. Le login devra commencer par une lettre. Si vous dsirez utiliser des logins compos uniquement de chiffres vous devrez alors entourer votre login entre des ". Note : Il faudra faire attention lors de l'utilisation des " sur un login car Oracle deviendra alors sensible la casse. "DURAND_D" ne sera pas identique "durand_d".

1.3. Choisir la mthode d'authentification de l'utilisateur


Afin d'authentifier un utilisateur et de dfinir les actions que celui-ci sera en mesure d'effectuer sur la base de donnes, le serveur Oracle doit pouvoir vrifier les accs de l'utilisateur lorsque celui-ci se connecte. Il existe diffrents type d'authentification : Authentification par la base de donnes. Authentification par le systme d'exploitation. Authentification par le rseau.

1.3.1. Par la base de donnes


Ce mode, le plus courant, est le mode par dfaut. En clair l'utilisateur est authentifi avec le mots de passe stocks dans la base de donnes. Cela signifie que la base de donnes devra tre ouverte pour q'un utilisateur puisse se connecter. Pour crer un utilisateur authentifi par la base de donnes, vous devrez utiliser la clause IDENTIFIED BY <password>. Le mot de passe devra dans les cas par dfaut commencer par une lettre, avoir une longueur maximale de 30 caractres et ne pourra etre compos que de chiffres, lettre de l'alphabet, et des symboles suivants : #, _, $ (bien que Oracle ne prconise pas l'utilisation de # et $) Toutefois il est possible d'outrepasser ces conventions en entourant le mot de passe de ". Ce qui nous permettra de faire dbuter notre mots de passe par un chiffre et d'utiliser des caractres accentus. Il est bon de savoir que Oracle prconise l'utilisation de caractres mono-bytes mme si la base de donnes supporte les caractres multi-bytes. Voici un exemple de cration simple d'un utilisateur authentifi par la base de donnes :

oracle.developpez.com/guide/administration/adminuser/

2/10

06/08/13

Gestion des utilisateurs

C R E A T EU S E Rs c o t tI D E N T I F I E DB Yt i g e r ;

Cette commande va donc crer un utilisateur SCOTT dont le mot de passe sera tiger. Pour se connecter il devra utiliser la commande suivante (aprs lui avoir attribu les droits ncessaires)
C O N N E C Ts c o t t / t i g e r @ < c h a n ed ' h t e > ;

1.3.2. Par le systme d'exploitation


Ce mode permettra Oracle de se baser sur l'authentification de l'utilisateur par un systme tierce ou par le systme d'exploitation. L'avantage majeur de cette solution rside dans le fait que l'utilisateur n'aura alors besoin de s'authentifier qu'une seule fois sur son systme d'exploitation. Cependant cette solution apporte aussi son lot de faille de scurit car si l'utilisateur oublie de se dconnecter de sa machine, il sera alors trs simple de se connecter la base sans avoir fournir de mot de passe. Oracle ne recommande pas l'utilisation de ce mode d'authentification. Pour crer un utilisateur authentifi de manire extrieure, vous devrez utilisez la clause IDENTIFIED EXTERNALLY. Attention cette commande va ncessiter la configuration de quelques paramtres Oracle avant de pouvoir fonctionner correctement. Nous allons prendre pour les exemples suivants : Un utilisateur local helyos Un utilisateur helyos du domaine galaxy Nous allons donc voir comment configurer le serveur pour autoriser l'authentification de ces utilisateurs par le systme d'exploitation. Puis nous verrons comment configurer le client.

1.3.2.1. Configuration sur le serveur La 1re tape sera de configurer la valeur du paramtre OS_AUTHENT_PREFIX (dans le fichier init.ora). Ce paramtre servira Oracle pour tre en mesure de dterminer les utilisateurs devant tre authentifis par une application tierce. Il est vivement conseiller de laisser la valeur par dfaut OPS$ Valeur de OS_AUTHENT_PREFIX OS_ Pas de prfixe Login de l'utilisateur OS_DURAND_D DURAND_D Connexion distante possible Non Non

OPS$ (valeur par dfaut) ou vide OPS$DURAND_D Oui La 2me tape sera de crer un utilisateur OS local ou de domaine. Pour ce point veuillez consulter la documentation de votre systme d'exploitation. La 3me tape va dpendre du type d'utilisateur systme que vous voulez autoriser. Sur Windows, si l'utilisateur ne fais pas partie d'un domaine, vous allez devoir rajouter une valeur dans votre base de registre. Dans HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOMEid (ou id correspond l'instance qui devra authentifier les utilisateurs l'aide du systme). Rajouter la cl OSAUTH_PREFIX_DOMAIN (de type valeur de chane extensible) et lui donner la valeur TRUE. La 4me tape consistera vrifier la valeur du paramtre SQLNET.AUTHENTICATION_SERVICES dans le fichier sqlnet.ora. Celui-ci devra contenir la valeur NTS. La 5me tape consistera crer explicitement le nouvel utilisateur de la base de donnes. On lance SQL*Plus
S Q L P L U S/ n o l o g

Puis on effectue les actions suivantes si l'utilisateur est un utilisateur OS local :


-O ns ec o n n e c t ee nt a n tq u eD B A C O N N E C Ts y s t e m / < m o td ep a s s e > -S il ' u t i l i s a t e u re s tu nu t i l i s a t e u rl o c a lo nl a n c ec e t t ec o m m a n d e C R E A T EU S E Ro p s $ h e l y o sI D E N T I F I E DE X T E R N A L L Y ; -O nl u id o n n ee n s u i t el e sd r o i t sp a rd f a u t G R A N Tc o n n e c t ,r e s o u r c eT Oo p s $ h e l y o s ;

Si l'utilisateur est un utilisateur OS d'un domaine :


-O ns ec o n n e c t ee nt a n tq u eD B A

oracle.developpez.com/guide/administration/adminuser/

3/10

06/08/13

Gestion des utilisateurs

-O ns ec o n n e c t ee nt a n tq u eD B A C O N N E C Ts y s t e m / < m o td ep a s s e > -S il ' u t i l i s a t e u re s tu nu t i l i s a t e u rl o c a lo nl a n c ec e t t ec o m m a n d e C R E A T EU S E R" O P S $ G A L A X Y \ H E L Y O S "I D E N T I F I E DE X T E R N A L L Y ; -O nl u id o n n ee n s u i t el e sd r o i t sp a rd f a u t G R A N Tc o n n e c t ,r e s o u r c eT O" O P S $ G A L A X Y \ H E L Y O S " ;

Attention dans le deuxime cas il sera trs important de mettre le nouveau nom d'utilisateur en majuscule car nous utilisons des guillemets et Oracle devient alors sensible la casse. Si vous ne saisissez pas le login en majuscule vous devriez avoir l'erreur ORA-01017. De plus sous Unix, il sera trs important de prfixer le $ par un \ pour viter que celui-ci ne soit interprt comme tant une variable d'environnement. Une fois ces commandes effectues le nouvel utilisateur sera en mesure de se connecter sur la base de donnes en utilisant la commande partir du serveur.
S Q L P L U S/

1.3.2.2. Configuration sur le client Comme la majeure partie du temps l'utilisateur lambda n'a pas accs directement au serveur. Donc voici les actions effectuer pour que celui-ci puisse se connecter distance sur le serveur tout en tant authentifi par son OS. La premire chose faire va tre de mettre TRUE la valeur du paramtre REMOTE_OS_AUTHENT dans le fichier init.ora du serveur. Ce paramtre va permettre des connexions distantes de pouvoir se connecter sur le serveur. Si vous oubliez de mettre TRUE ce paramtre vous obtiendrez alors les erreurs suivantes :
O R A 0 1 0 0 4 :d e f a u l tu s e r n a m ef e a t u r en o ts u p p o r t e d ;l o g o nd e n i e d O R A 0 1 9 8 8 :r e m o t eo sl o g o ni sn o ta l l o w e d

Ensuite le reste de la configuration est trs simple puisqu'il vous faudra juste avoir un compte local ou un compte de domaine sur la machine. Vrifier la valeur du paramtre SQLNET.AUTHENTICATION_SERVICES dans le fichier sqlnet.ora. Celui-ci devra contenir la valeur NTS. Configurer le client Net8 pour pouvoir accder la base de donnes Se connecter en utilisant la commande :
S Q L P L U S/ @ < c h a n ed ec o n n e c t i o n >

1.4. Choisir les TABLESPACEs que l'utilisateur pourra utiliser


Il va maintenant falloir choisir le domaine d'action du nouvel utilisateur. En effet, pour des raisons de scurits videntes, nous allons restreindre le champ d'action de l'utilisateur en choisissant les tablespaces que celui-ci sera en mesure d'utiliser. En premier lieu il est trs fortement dconseill d'autoriser un utilisateur utiliser le tablespace SYSTEM, qui doit imprativement rester ddi au dictionnaire de donnes. Il va donc falloir identifier tous les tablespaces ncessaire l'utilisateur, que ce soit des tablespaces de donnes, d'index, ou temporaire. Il n'y a pas de syntaxe particulire pour cette tape.

1.5. Dfinir les QUOTAs de l'utilisateur


Une fois les tablespaces identifis, l'tape suivante va consister dfinir l'espace allou l'utilisateur sur chacun des tablespaces. Voici les diffrentes options disponibles pour les quotas : Une taille en K (KiloBytes) ou en M (MegaBytes) Unlimited Par dfaut le nouvel utilisateur dispose d'un quota null sur tous les tablespaces. Voici un exemple d'assignation de quotas sur diffrents TABLESPACES :
. . . Q U O T A5 MO NT B S _ U S E R SQ U O T AU N L I M I T E DO NT M P _ U S E R S . . . . . .

oracle.developpez.com/guide/administration/adminuser/

1.6. Choisir les TABLESPACEs par dfaut de l'utilisateur

4/10

06/08/13

1.6. Choisir les TABLESPACEs par dfaut de l'utilisateur


Cette tape est absolument indispensable, elle va permettre de dfinir le tablespace de donnes et le tablespace temporaire de l'utilisateur. Cette tape est indispensable pour viter toute criture dans le tablespace SYSTEM (qui est assign si aucun tablespace par dfaut n'est dfini). Vous devrez dfinir ces deux tablespaces avec les options DEFAULT TABLESPACE pour le tablespace de donnes et TEMPORARY TABLESPACE pour le tablespace temporaire. Voici un exemple d'utilisation :
. . . D E F A U L TT A B L E S P A C Et b s _ u s e rT E M P O R A R YT A B L E S P A C Et m p _ u s e r . . .

Gestion des utilisateurs

1.7. Syntaxe complte de l'ordre CREATE USER


Voici la structure complte d'un ordre CREATE USER :

Voici une explication de tous les mots cl. utilisateur : Login du futur utilisateur (voir paragraphe 1.2) IDENTIFIED BY mot de passe : Active l'authentification par la base de donnes avec le mot de passe spcifi. IDENTIFIED EXTERNALLY : Active l'authentification par le systme d'exploitation IDENTIFIED GLOBALLY AS 'nom externe' : Active l'authentification par un LDAP externe. DEFAULT TABLESPACE nom du tablespace : Permet d'attribuer un TABLESPACE de donnes par dfaut l'utilisateur. TEMPORATY TABLESPACE nom du tablespace : Permet d'attribuer un TABLESPACE temporaire par dfaut l'utilisateur. QUOTA options ON nom du tablespace : Permet de dfinir le quota d'espace attribu l'utilisateur sur un TABLESPACE prcis. PROFILE nom du profil : Permet d'attribuer un profil limitant les ressources systme de l'utilisateur. PASSWORD EXPIRE : Permet de faire expirer le mot de passe de l'utilisateur pour que celui-ci le change lors de la premire connexion. ACCOUNT LOCK / UNLOCK : Permet d'activer ou de dsactiver un compte utilisateur.

1.8. Exemples
Voici quelques exemples de cration d'utilisateurs Oracle :
C R E A T EU S E RH e l y o s

oracle.developpez.com/guide/administration/adminuser/

5/10

06/08/13
I D E N T I F I E DB Ym y p a s s 1 D E F A U L TT A B L E S P A C Et b s _ u s e r s Q U O T A1 0 MO Nt b s _ u s e r s T E M P O R A R YT A B L E S P A C Et m p _ u s e r s Q U O T A5 MO Nt m p _ u s e r s Q U O T A5 MO Nt o o l s P R O F I L Ea p p _ u s e r P A S S W O R DE X P I R E ;

Gestion des utilisateurs

L'utilisateur helyos aura donc le mot de passe mypass1. Son TABLESPACE par dfaut sera tbs_users avec un quota de 10Mo, son tablespace temporaire sera le TABLESPACE tmp_users avec un quota de 5M. Il aura aussi la possibilit d'utiliser le TABLESPACE tools avec un quota de 5Mo. Il devra changer son mot de passe lors de la connexion et se verra attribuer le profil app_user.
C R E A T EU S E R" O P S $ G A L A X Y \ H E L Y O S " I D E N T I F I E DB Ym y p a s s 1 D E F A U L TT A B L E S P A C Et b s _ u s e r s Q U O T A1 0 MO Nt b s _ u s e r s T E M P O R A R YT A B L E S P A C Et m p _ u s e r s Q U O T A5 MO Nt m p _ u s e r s Q U O T A5 MO Nt o o l s P R O F I L Ea p p _ u s e r P A S S W O R DE X P I R E ;

L'utilisateur aura les mmes attributs que celui de l'exemple prc dent mais celui-ci sera authentifi par le systme d'exploitation. De plus il est important de savoir que seul l'utilisateur HELYOS du domaine GALAXY pourra se connecter avec ce nouvel utilisateur, et que l'utilisateur local HELYOS ne pourra pas utiliser ce nouveau compte.

2. Modifications d'un utilisateur


2.1. Modification de son mot de passe
Si vous souhaitez changer le mot de passe d'un utilisateur voici la commande que vous devrez utiliser.

A L T E RU S E R<l o g i nd el ' u t i l i s a t e u r>I D E N T I F I E DB Y<n o u v e a um o td ep a s s e>

Cette commande permettra de modifier le mot de passe d'un utilisateur. Si vous avez utilis la fonction de vrification de mots de passe fournie par Oracle (script UTLPWDMG.SQL) ou que vous avez cre la votre, vous allez devoir utiliser une option supplmentaire : l'option REPLACE avec l'ancien mot de passe afin que celui-ci puisse tre pass la fonction de vrification de mot de passe. Exemple :
A L T E RU S E R<l o g i nd el ' u t i l i s a t e u r>I D E N T I F I E DB Y<n o u v e a um o td ep a s s e>R E P L A C E<a n c i e nm o td ep a s s e>

Pour les DBAs : Vous pouvez parfois, en tant que DBA, tre confront au type de problme suivant : Devoir utiliser le compte d'un autre utilisateur mais sans changer son mot de passe. (Par exemple cet utilisateur dispose d'une procdure qui ne pourra tre lance que par cet utilisateur car la condition a t code dans la procdure). Voici une mthode qui va vous permettre de prendre la place de cet utilisateur sans changer son mot de passe.
-O ns ec o n n e c t ee nD B A s q l p l u ss y s t e m / < m o td ep a s s e > @ <c h a i n ed ec o n n e x i o n> -O nf a i tu ne x p o r tt e x td e si n f o r m a t i o n sd el ' u t i l i s a t e u rd o n to ns o u h a i t ep r e n d r el ap l a c e S P O O Lc : \ s a v e u s e r . s q l S E L E C T' A L T E RU S E R' | | u s e r n a m e| | 'I D E N T I F I E DB YV A L U E S' ' ' | | p a s s w o r d | | ' ' '; ' F R O Md b a _ u s e r s W H E R Eu s e r n a m e = ' <l o g i nd uu s e r> ' ; S P O O LO F F -O nc h a n g es o nm o td ep a s s A L T E RU S E R<l o g i nd uu s e r>I D E N T I F I E DB Yt a t a ; -O ns ec o n n e c t ee nt a n tq u el ' a u t r eu t i l i s a t e u r C O N N E C T<l o g i nd uu s e r> / t a t a -O nf a i tn o sa c t i o n s . . .

-O ne x e c u t el ' o r d r eS Q Lc o n t e n ud a n ss a v e u s e r . s q l A L T E RU S E R<l o g i nd uu s e r>I D E N T I F I E DB YV A L U E S' <m o td ep a s s ec r y p t > ';

Cette mthode vous permet de prendre la place d'un utilisateur temporairement sans connaitre son mot de passe, et sans que cela soit visible par l'utilisateur. L'option IDENTIFIED BY VALUES est une

oracle.developpez.com/guide/administration/adminuser/

6/10

06/08/13

mot de passe, et sans que cela soit visible par l'utilisateur. L'option IDENTIFIED BY VALUES est une des nombreuses commandes caches d'Oracle.

Gestion des utilisateurs

2.2. Modification des quotas


La syntaxe de modification des quotas d'un utilisateur n'est pas diffrente de la syntaxe utilise lors de la cration de l'utilisateur. Cependant il est important de noter que si un utilisateur disposait de 1Mo de quotas sur un TABLESPACE et qu'il en avait utilis la moiti avec des tables, et bien si vous lui modifiez son quota 0Mo sur ce TABLESPACE cela n'impliquera pas que ses tables soient vides ou supprimes, mais cela sinifiera que ses tables ne pourront pas s'allouer d'extents supplmentaires. Exemple :
A L T E RU S E Rs c o t tQ U O T A1 5 MO Nt b s _ u s e r sQ U O T A0 MO Nt o o l s ;

2.3. Modification des TABLESPACES par dfaut


La syntaxe utiliser n'est pas diffrente de la syntaxe de cration. Cette commande vous permettra de modifier les TABLESPACES par dfaut de l'utilisateur. Cela ne dplacera pas les objets des anciens TABLESPACES. Exemple :
A L T E RU S E Rs c o t tD E F A U L TT A B L E S P A C Et b s _ u s e r s 2T E M P O R A R YT A B L E S P A C Et m p 2 ;

2.4. Modification du status d'un utilisateur


Pour des raisons de scurit, il peut parfois tre utile de vrouiller le compte d'un utilisateur pour viter que celui-ci soit utilis de manire frauduleuse. Cette mthode peut aussi tre utilise pour organiser des objets dans un schma sans que l'on puisse utiliser l'utilisateur en question. Voici un exemple d'activation et de verrouillage d'un compte utilisateur :
-V e r r o u i l l a g ed uc o m p t e A L T E RU S E Rs c o t tA C C O U N TL O C K ; -A c t i v a t i o nd uc o m p t e A L T E RU S E Rs c o t tA C C O U N TU N L O C K ;

2.5. Syntaxe complte de l'ordre ALTER USER


Voici la structure complte d'un ordre ALTER USER :

oracle.developpez.com/guide/administration/adminuser/

7/10

06/08/13

Gestion des utilisateurs

Voici une explication de tous les mots cl. utilisateur : Login du futur utilisateur IDENTIFIED BY mot de passe : Active l'authentification par la base de donnes avec le mot de passe spcifi. IDENTIFIED EXTERNALLY : Active l'authentification par le systme d'exploitation IDENTIFIED GLOBALLY AS 'nom externe' : Active l'authentification par un LDAP externe. DEFAULT TABLESPACE nom du tablespace : Permet d'attribuer un TABLESPACE de donnes par dfaut l'utilisateur. TEMPORATY TABLESPACE nom du tablespace : Permet d'attribuer un TABLESPACE temporaire par dfaut l'utilisateur. QUOTA options ON nom du tablespace : Permet de dfinir le quota d'espace attribu l'utilisateur sur un TABLESPACE prcis. PROFILE nom du profil : Permet d'attribuer un profil limitant les ressources systme de l'utilisateur. PASSWORD EXPIRE : Permet de faire expirer le mot de passe de l'utilisateur pour que celui-ci le change lors de la premire connexion. ACCOUNT LOCK / UNLOCK : Permet d'activer ou de dsactiver un compte utilisateur. DEFAULT ROLE : Ces options vont permettre de dfinir lors de la modification d'un utilisateur son ou ses rles par dfaut. Ces rles seront activs lors de la connexion de l'utilisateur. Nous ne traiterons pas ici la clause proxy.

3. Suppressions d'un utilisateur


Nous allons maintenant voir comment supprimer un utilisateur et son schma. Il est important de noter qu'un utilisateur actuellement connect la base ne pourra pas tre supprim. Par exemple :
S Q L >D R O PU S E Rs c o t tC A S C A D E ; D R O PU S E Rs c o t tC A S C A D E * E R R E U Rl al i g n e1: O R A 0 1 9 4 0 :i m p o s s i b l es u p p r i m e ru nu t i l i s a t e u rq u ie s tc o n n e c t

3.1. Supprimer un utilisateur avec un schma vide


Pour cette mthode nous utiliserons juste la commande DROP USER. Cette mthode est la mthode par dfaut. Il faut juste vrifier que le schma de l'utilisateur soit vide lors de l'excution de cette commande. Sinon il en rsultera l'erreur suivante :

oracle.developpez.com/guide/administration/adminuser/

8/10

06/08/13
S Q L >D R O PU S E Rs c o t t ; D R O PU S E Rs c o t t * E R R E U Rl al i g n e1: O R A 0 1 9 2 2 :C A S C A D Es p c i f i e rp o u rs u p p r i m e r' S C O T T '

Gestion des utilisateurs

Cette erreur est due au fait que Oracle ne supprimera pas les objets l'intrieur du schma de l'utilisateur et qu'il vous faudra utiliser l'option CASCADE du chapitre suivant. Voici un exemple de suppression d'un utilisateur ayant un schma vide :
S Q L >D R O PU S E Rt e s t ; U t i l i s a t e u rs u p p r i m .

3.2. Supprimer un utilisateur avec son schma


Lorsque vous souhaitez supprimer un utilisateur et tous les objets de son schma, vous devez alors utiliser l'option CASCADE. Cette option va automatiquement effacer tout les objets contenus dans le schma de l'utilisateur. Si le schma contient des tables, Oracle effacera alors automatiquement toute les contraintes d'intgrits des tables et toutes les contraintes d'intgrits dans les schmas d'autres utilisateurs qui faisaient rfrences aux contraintes UNIQUE et PRIMARY KEY du schma qui est en cours de suppression. Oracle supprimera aussi tous les index lis aux colonnes des tables, ainsi que tout les triggers, les types de donnes (avec l'option FORCE). Oracle invalidera mais ne supprimera pas les objets contenus dans d'autres schma mais qui faisaient rfrences au schma supprim. Par contre, Oracle ne supprimera pas les rles crs par l'utilisateur. Voici un exemple de suppression d'un utilisateur et de son schma :
S Q L >D R O PU S E Rs c o t tC A S C A D E ; U t i l i s a t e u rs u p p r i m .

3.2. Syntaxe complte de l'ordre DROP USER


Voici la structure complte d'un ordre DROP USER :

Voici une explication de tous les mots cl. utilisateur : Login de l'utilisateur supprimer. CASCADE : Permet de supprimer le contenu du schma de l'utilisateur qui sera supprim.

4. Informations sur les utilisateurs


Nous allons ici voir les diffrentes vues qui seront utile pour obtenir des informations sur les utilisateurs que nous avons crs. Les vues qui nous seront utiles sont les vues DBA_USERS et DBA_TS_QUOTAS (voire les vues USER_USERS qui contiendra les informations de l'utilisateur courant et USER_TS_QUOTAS qui contiendra les informations sur les quotas de l'utilisateur courant).

4.1. Descriptif de la vue DBA_USERS


Colonne USERNAME USER_ID PASSWORD Type VARCHAR2(30) NOT NULL NUMBER NOT NULL VARCHAR2(30) Description Login de l'utilisateur ID de l'utilisateur Mot de passe encrypt Statut du compte: OPEN : ouvert EXPIRED : Doit changer son mot de passe EXPIRED(GRACE) : Doit changer son mot de passe (en priode de grace) LOCKED(TIMED) : Vrouill

oracle.developpez.com/guide/administration/adminuser/

9/10

06/08/13

Gestion des utilisateurs

ACCOUNT_STATUS

VARCHAR2(32) NOT NULL

LOCKED(TIMED) : Vrouill pour un certain temps LOCKED : Vrouill de manire dfinitive EXPIRED & LOCKED(TIMED) : Doit changer son mot de passe et vrouill pour un certain temps EXPIRED(GRACE) & LOCKED(TIMED) : Doit changer son mot de passe (en priode de grace) et vrouill pour un certain temps EXPIRED & LOCKED : Vrouill et doit changer son mot de passe EXPIRED(GRACE) & LOCKED : Doit changer son mot de passe (en priode de grace) et vrouill Date laquelle le compte a t vrouill si le status est LOCKED Date du prochain changement de mot de passe TABLESPACE par dfaut pour les donnes TABLESPACE par dfaut pour les donnes temporaires Date de cration de l'utilisateur Nom du profil assign l'utilisateur Nom du groupe de consomation des ressources Nom exterieur (pour option IDENTIFIED GLOBALLY)

LOCK_DATE

DATE

EXPIRY_DATE DEFAULT_TABLESPACE TEMPORARY_TABLESPACE CREATED PROFILE INITIAL_RSRC_CONSUMER_GROUP EXTERNAL_NAME

DATE VARCHAR2(30) NOT NULL VARCHAR2(30) NOT NULL DATE NOT NULL VARCHAR2(30) NOT NULL VARCHAR2(30) VARCHAR2(4000)

4.2. Descriptif de la vue DBA_TS_QUOTAS


Colonne TABLESPACE_NAME USERNAME BYTES Type VARCHAR2(30) NOT NULL VARCHAR2(30) NOT NULL NUMBER Description Nom du TABLESPACE Nom de l'utilisateur qui ce quota est assign Nombre de Bytes allou actuellement l'utilisateur sur le TABLESPACE Quota maximal en bytes de l'utilisateur sur ce TABLESPACE (contiendra -1 si il n'y a pas de limite) Nombre de blocs allou actuellement l'utilisateur sur le TABLESPACE Quota maximal en blocs de l'utilisateur sur ce TABLESPACE (contiendra -1 si il n'y a pas de limite)

MAX_BYTES

NUMBER

BLOCKS

NUMBER NOT NULL

MAX_BLOCKS

NUMBER

L e guide O rac le par O rafranc e, H elyos et SheikY erbouti

Responsable bnvole de la rubrique Oracle : le Rdacteur en Chef - Contacter par email

Developpez.com
Nous contacter Participez Informations lgales

Services
Forum Oracle Blogs Hbergement

Partenaires
Hbergement Web

Copyright 2000-2013 - www.developpez.com

oracle.developpez.com/guide/administration/adminuser/

10/10