Professional Documents
Culture Documents
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 SQL
SCRIPTS SQL
LIVRES ORACLE
oracle.developpez.com/guide/administration/adminuser/
1/10
06/08/13
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.
oracle.developpez.com/guide/administration/adminuser/
2/10
06/08/13
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.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
oracle.developpez.com/guide/administration/adminuser/
3/10
06/08/13
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 >
oracle.developpez.com/guide/administration/adminuser/
4/10
06/08/13
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 ;
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.
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 . . .
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.
oracle.developpez.com/guide/administration/adminuser/
7/10
06/08/13
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.
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 '
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 .
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.
oracle.developpez.com/guide/administration/adminuser/
9/10
06/08/13
ACCOUNT_STATUS
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
DATE VARCHAR2(30) NOT NULL VARCHAR2(30) NOT NULL DATE NOT NULL VARCHAR2(30) NOT NULL VARCHAR2(30) VARCHAR2(4000)
MAX_BYTES
NUMBER
BLOCKS
MAX_BLOCKS
NUMBER
Developpez.com
Nous contacter Participez Informations lgales
Services
Forum Oracle Blogs Hbergement
Partenaires
Hbergement Web
oracle.developpez.com/guide/administration/adminuser/
10/10