10
06/08/13 Gestion des utilisateurs oracle.developpez.com/guide/administration/adminuser/ 1/10 Forums Tutoriels Magazine FAQs Blogs Projets Chat Newsletter Études Emploi Club Contacts SGBD 4D Access DB2 Firebird InterBase MySQL NoSQL Oracle PostgreSQL SQL-Server Sybase ACCUEIL ORACLE FORUM ORACLE F.A.Q ORACLE TUTORIELS ORACLE TUTORIELS SQL SCRIPTS SQL LIVRES ORACLE QUIZ 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. Création des utilisateurs 1.1. Introduction 1.1.1. Définition d'un schéma 1.1.2. Définition d'un user 1.2. Choix du nom de l'utilisateur 1.3. Choisir la méthode d'authentification de l'utilisateur 1.3.1. Par la base de données 1.3.2. Par le système 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. Définir les QUOTAs de l'utilisateur 1.6. Choisir les TABLESPACEs par défaut de l'utilisateur 1.7. Syntaxe complète 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 défaut 2.4. Modification du status d'un utilisateur 2.5. Syntaxe complète de l'ordre ALTER USER 3. Suppressions d'un utilisateur 3.1. Supprimer un utilisateur avec un schéma vide 3.2. Supprimer un utilisateur avec son schéma 3.2. Syntaxe complète 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. Création des utilisateurs Nous allons voir dans cet article comment créer et configurer un utilisateur de base de données ou un compte avec lequel vous pourrez vous connecter et effectuer des actions sur la base de données en fonctions des droits qui vous serons alloués. Il est aussi bon de savoir que contrairement à d'autres bases de données, quand vous créez un utilisateur sur une base de données Oracle celui-ci ne dispose d'aucun droit, pour cela reportez vous à la section "Administration des rôles et privilèges". Voici les différentes étapes qui seront nécessaire à la création d'un utilisateur Oracle : Choisir un nom d'utilisateur Choisir une méthode d'authentification Choisir les TABLESPACEs que l'utilisateur pourra utiliser Définir les quotas sur chaques TABLESPACEs Définir les TABLESPACEs par défaut de l'utilisateur Créer l'utilisateur Assigner les rôles et privilèges à l'utilisateur Accueil ALM Java .NET Dév. Web EDI Langages SGBD Office Solutions d'entreprise Applications Mobiles Systèmes

Gestion des utilisateurs.pdf

Embed Size (px)

Citation preview

Page 1: Gestion des utilisateurs.pdf

06/08/13 Gestion des utilisateurs

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

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

SGBD 4D Access DB2 Firebird InterBase MySQL NoSQL Oracle PostgreSQL SQL-Server Sybase

ACCUEIL ORACLE FORUM ORACLE F.A.Q ORACLE TUTORIELS ORACLE TUTORIELS SQL SCRIPTS SQL LIVRES ORACLE

QUIZ

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. Création des utilisateurs 1.1. Introduction 1.1.1. Définition d'un schéma 1.1.2. Définition d'un user 1.2. Choix du nom de l'utilisateur 1.3. Choisir la méthode d'authentification de l'utilisateur 1.3.1. Par la base de données 1.3.2. Par le système 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. Définir les QUOTAs de l'utilisateur 1.6. Choisir les TABLESPACEs par défaut de l'utilisateur 1.7. Syntaxe complète 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 défaut 2.4. Modification du status d'un utilisateur 2.5. Syntaxe complète de l'ordre ALTER USER 3. Suppressions d'un utilisateur 3.1. Supprimer un utilisateur avec un schéma vide 3.2. Supprimer un utilisateur avec son schéma 3.2. Syntaxe complète 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. Création des utilisateurs

Nous allons voir dans cet article comment créer et configurer un utilisateur de base de données ouun compte avec lequel vous pourrez vous connecter et effectuer des actions sur la base dedonnées en fonctions des droits qui vous serons alloués.

Il est aussi bon de savoir que contrairement à d'autres bases de données, quand vous créez unutilisateur sur une base de données Oracle celui-ci ne dispose d'aucun droit, pour cela reportezvous à la section "Administration des rôles et privilèges".

Voici les différentes étapes qui seront nécessaire à la création d'un utilisateur Oracle :

Choisir un nom d'utilisateurChoisir une méthode d'authentificationChoisir les TABLESPACEs que l'utilisateur pourra utiliserDéfinir les quotas sur chaques TABLESPACEsDéfinir les TABLESPACEs par défaut de l'utilisateurCréer l'utilisateurAssigner les rôles et privilèges à l'utilisateur

Accueil ALM Java .NET Dév. Web EDI Langages SGBD Office Solutions d'entreprise Applications Mobiles Systèmes

Page 2: Gestion des utilisateurs.pdf

06/08/13 Gestion des utilisateurs

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

1.1. Introduction

1.1.1. Définition d'un schéma

Un schéma est une collection (ou un ensemble) nommé d'objets tels que des tables, vues,clusters, procédure et packages associés à un utilisateur précis. Quand un utilisateur de base dedonnées est crée, son schéma est automatiquement crée. Un utilisateur ne pourra alors êtreassocié qu'à un seul schéma et réciproquement.

1.1.2. Définition d'un user

Un utilisateur de base de données va correspondre à un login qui aura reçu certains privilèges. Cetutilisateur sera stocké dans le dictionnaire de données et disposera d'un espace de stockage pourses objets qui seront alors stockés dans son schéma.

En Oracle on pourra assimiler un utilisateur avec son schéma.

1.2. Choix du nom de l'utilisateur

La première chose à faire pour créer un nouvel utilisateur va être de définir un login. Afin d'éviterd'avoir trop de problèmes lors de l'ajout de nouveaux utilisateurs, il est fortement recommandé demetttre une stratégie de nommage en place.

Par exemple tout les noms d'utilisateur devront être composé des 6 premières lettres de leur nom,d'un "_" et de la première lettre de leur prénom.

Par exemple : Albert Durand donnera comme login durand_a.

Il convient ensuite de connaitre les limitations et règles de nommage à respecter:

Taille maximale 30 caractères.Ne devra contenir que des lettres de [a-z] et des chiffres [0-9]. Tout les caractèresaccentués ou autres sont à éviter. Vous pourrez également utiliser les symboles #, $, _.Le login devra commencer par une lettre. Si vous désirez 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 alorssensible à la casse.

"DURAND_D" ne sera pas identique à "durand_d".

1.3. Choisir la méthode d'authentification de l'utilisateur

Afin d'authentifier un utilisateur et de définir les actions que celui-ci sera en mesure d'effectuer surla base de données, le serveur Oracle doit pouvoir vérifier les accès de l'utilisateur lorsque celui-cise connecte.

Il existe différents type d'authentification :

Authentification par la base de données.Authentification par le système d'exploitation.Authentification par le réseau.

1.3.1. Par la base de données

Ce mode, le plus courant, est le mode par défaut. En clair l'utilisateur est authentifié avec le motsde passe stockés dans la base de données. Cela signifie que la base de données devra êtreouverte pour q'un utilisateur puisse se connecter.

Pour créer un utilisateur authentifié par la base de données, vous devrez utiliser la clauseIDENTIFIED BY <password>.

Le mot de passe devra dans les cas par défaut commencer par une lettre, avoir une longueurmaximale de 30 caractères et ne pourra etre composé que de chiffres, lettre de l'alphabet, et dessymboles suivants : #, _, $ (bien que Oracle ne préconise pas l'utilisation de # et $)

Toutefois il est possible d'outrepasser ces conventions en entourant le mot de passe de ". Ce quinous permettra de faire débuter notre mots de passe par un chiffre et d'utiliser des caractèresaccentués. Il est bon de savoir que Oracle préconise l'utilisation de caractères mono-bytes mêmesi la base de données supporte les caractères multi-bytes.

Voici un exemple de création simple d'un utilisateur authentifié par la base de données :

Page 3: Gestion des utilisateurs.pdf

06/08/13 Gestion des utilisateurs

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

CREATE USER scott IDENTIFIED BY tiger;

Cette commande va donc créer un utilisateur SCOTT dont le mot de passe sera tiger. Pour seconnecter il devra utiliser la commande suivante (après lui avoir attribué les droits nécessaires)

CONNECT scott/tiger@<chaîne d'hôte>;

1.3.2. Par le système d'exploitation

Ce mode permettra à Oracle de se baser sur l'authentification de l'utilisateur par un système tierceou par le système d'exploitation. L'avantage majeur de cette solution réside dans le fait quel'utilisateur n'aura alors besoin de s'authentifier qu'une seule fois sur son système d'exploitation.

Cependant cette solution apporte aussi son lot de faille de sécurité car si l'utilisateur oublie de sedéconnecter de sa machine, il sera alors très simple de se connecter à la base sans avoir à fournirde mot de passe. Oracle ne recommande pas l'utilisation de ce mode d'authentification.

Pour créer un utilisateur authentifié de manière extérieure, vous devrez utilisez la clauseIDENTIFIED EXTERNALLY.

Attention cette commande va nécessiter la configuration de quelques paramètres Oracle avant depouvoir fonctionner correctement.

Nous allons prendre pour les exemples suivants :

Un utilisateur local helyosUn utilisateur helyos du domaine galaxy

Nous allons donc voir comment configurer le serveur pour autoriser l'authentification de cesutilisateurs par le système d'exploitation. Puis nous verrons comment configurer le client.

1.3.2.1. Configuration sur le serveur

La 1ère étape sera de configurer la valeur du paramètre OS_AUTHENT_PREFIX (dans le fichierinit.ora). Ce paramètre servira à Oracle pour être en mesure de déterminer les utilisateurs devantêtre authentifiés par une application tierce.

Il est vivement conseiller de laisser la valeur par défaut OPS$

Valeur de OS_AUTHENT_PREFIX Login de l'utilisateurConnexion distante

possible

OS_ OS_DURAND_D Non

Pas de préfixe DURAND_D Non

OPS$ (valeur par défaut) ou vide OPS$DURAND_D Oui

La 2ème étape sera de créer un utilisateur OS local ou de domaine. Pour ce point veuillez consulterla documentation de votre système d'exploitation.

La 3ème étape va dépendre du type d'utilisateur système que vous voulez autoriser.

Sur Windows, si l'utilisateur ne fais pas partie d'un domaine, vous allez devoir rajouter une valeurdans votre base de registre. Dans HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOMEid (ou id correspond à l'instance qui devraauthentifier les utilisateurs à l'aide du système).

Rajouter la clé OSAUTH_PREFIX_DOMAIN (de type valeur de chaîne extensible) et lui donner la

valeur TRUE.

La 4ème étape consistera à vérifier la valeur du paramètre SQLNET.AUTHENTICATION_SERVICESdans le fichier sqlnet.ora. Celui-ci devra contenir la valeur NTS.

La 5ème étape consistera à créer explicitement le nouvel utilisateur de la base de données.

On lance SQL*Plus

SQLPLUS /nolog

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

-- On se connecte en tant que DBACONNECT system/<mot de passe>-- Si l'utilisateur est un utilisateur local on lance cette commandeCREATE USER ops$helyos IDENTIFIED EXTERNALLY;-- On lui donne ensuite les droits par défaut GRANT connect, resource TO ops$helyos;

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

-- On se connecte en tant que DBA

Page 4: Gestion des utilisateurs.pdf

06/08/13 Gestion des utilisateurs

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

-- On se connecte en tant que DBACONNECT system/<mot de passe>-- Si l'utilisateur est un utilisateur local on lance cette commandeCREATE USER "OPS$GALAXY\HELYOS" IDENTIFIED EXTERNALLY;-- On lui donne ensuite les droits par défaut GRANT connect, resource TO "OPS$GALAXY\HELYOS";

Attention dans le deuxième cas il sera très important de mettre le nouveau nom d'utilisateur enmajuscule car nous utilisons des guillemets et Oracle devient alors sensible à la casse. Si vous nesaisissez pas le login en majuscule vous devriez avoir l'erreur ORA-01017.

De plus sous Unix, il sera très important de préfixer le $ par un \ pour éviter que celui-ci ne soitinterprété comme étant une variable d'environnement.

Une fois ces commandes effectuées le nouvel utilisateur sera en mesure de se connecter sur labase de données en utilisant la commande à partir du serveur.

SQLPLUS /

1.3.2.2. Configuration sur le client

Comme la majeure partie du temps l'utilisateur lambda n'a pas accès directement au serveur. Doncvoici les actions à effectuer pour que celui-ci puisse se connecter à distance sur le serveur touten étant authentifié par son OS.

La première chose à faire va être de mettre à TRUE la valeur du paramètre REMOTE_OS_AUTHENTdans le fichier init.ora du serveur. Ce paramètre va permettre à des connexions distantes depouvoir se connecter sur le serveur. Si vous oubliez de mettre à TRUE ce paramètre vousobtiendrez alors les erreurs suivantes :

ORA-01004: default username feature not supported; logon denied ORA-01988: remote os logon is not allowed

Ensuite le reste de la configuration est très simple puisqu'il vous faudra juste avoir un compte local

ou un compte de domaine sur la machine.

Vérifier la valeur du paramètre SQLNET.AUTHENTICATION_SERVICES dans le fichier sqlnet.ora.Celui-ci devra contenir la valeur NTS.

Configurer le client Net8 pour pouvoir accéder à la base de données

Se connecter en utilisant la commande :

SQLPLUS /@<chaîne de connection>

1.4. Choisir les TABLESPACEs que l'utilisateur pourrautiliser

Il va maintenant falloir choisir le domaine d'action du nouvel utilisateur.

En effet, pour des raisons de sécurités évidentes, nous allons restreindre le champ d'action del'utilisateur en choisissant les tablespaces que celui-ci sera en mesure d'utiliser.

En premier lieu il est très fortement déconseillé d'autoriser un utilisateur à utiliser le tablespaceSYSTEM, qui doit impérativement rester dédié au dictionnaire de données.

Il va donc falloir identifier tous les tablespaces nécessaire à l'utilisateur, que ce soit destablespaces de données, d'index, ou temporaire. Il n'y a pas de syntaxe particulière pour cetteétape.

1.5. Définir les QUOTAs de l'utilisateur

Une fois les tablespaces identifiés, l'étape suivante va consister à définir l'espace alloué àl'utilisateur sur chacun des tablespaces.

Voici les différentes options disponibles pour les quotas :

Une taille en K (KiloBytes) ou en M (MegaBytes)Unlimited

Par défaut le nouvel utilisateur dispose d'un quota null sur tous les tablespaces.

Voici un exemple d'assignation de quotas sur différents TABLESPACES :

...QUOTA 5M ON TBS_USERS QUOTA UNLIMITED ON TMP_USERS......

1.6. Choisir les TABLESPACEs par défaut de l'utilisateur

Page 5: Gestion des utilisateurs.pdf

06/08/13 Gestion des utilisateurs

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

1.6. Choisir les TABLESPACEs par défaut de l'utilisateur

Cette étape est absolument indispensable, elle va permettre de définir le tablespace de donnéeset 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 défaut n'est défini).

Vous devrez définir ces deux tablespaces avec les options DEFAULT TABLESPACE pour letablespace de données et TEMPORARY TABLESPACE pour le tablespace temporaire.

Voici un exemple d'utilisation :

...DEFAULT TABLESPACE tbs_user TEMPORARY TABLESPACE tmp_user...

1.7. Syntaxe complète de l'ordre CREATE USER

Voici la structure complète 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 données avec le mot de passe spécifié.

IDENTIFIED EXTERNALLY :Active l'authentification par le système 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 données par défaut à l'utilisateur.

TEMPORATY TABLESPACE nom du tablespace :Permet d'attribuer un TABLESPACE temporaire par défaut à l'utilisateur.

QUOTA options ON nom du tablespace :Permet de définir le quota d'espace attribué à l'utilisateur sur un TABLESPACE précis.

PROFILE nom du profil :Permet d'attribuer un profil limitant les ressources système de l'utilisateur.

PASSWORD EXPIRE :Permet de faire expirer le mot de passe de l'utilisateur pour que celui-ci le change lors de lapremière connexion.

ACCOUNT LOCK / UNLOCK :Permet d'activer ou de désactiver un compte utilisateur.

1.8. Exemples

Voici quelques exemples de création d'utilisateurs Oracle :

CREATE USER Helyos

Page 6: Gestion des utilisateurs.pdf

06/08/13 Gestion des utilisateurs

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

IDENTIFIED BY mypass1 DEFAULT TABLESPACE tbs_users QUOTA 10M ON tbs_users TEMPORARY TABLESPACE tmp_users QUOTA 5M ON tmp_users QUOTA 5M ON tools PROFILE app_user PASSWORD EXPIRE;

L'utilisateur helyos aura donc le mot de passe mypass1. Son TABLESPACE par défaut seratbs_users avec un quota de 10Mo, son tablespace temporaire sera le TABLESPACE tmp_users avecun 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.

CREATE USER "OPS$GALAXY\HELYOS" IDENTIFIED BY mypass1 DEFAULT TABLESPACE tbs_users QUOTA 10M ON tbs_users TEMPORARY TABLESPACE tmp_users QUOTA 5M ON tmp_users QUOTA 5M ON tools PROFILE app_user PASSWORD EXPIRE;

L'utilisateur aura les mêmes attributs que celui de l'exemple préc édent mais celui-ci seraauthentifié par le système d'exploitation. De plus il est important de savoir que seul l'utilisateurHELYOS du domaine GALAXY pourra se connecter avec ce nouvel utilisateur, et que l'utilisateurlocal 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 devrezutiliser.

ALTER USER < login de l'utilisateur > IDENTIFIED BY < nouveau mot de passe >

Cette commande permettra de modifier le mot de passe d'un utilisateur. Si vous avez utilisé lafonction de vérification de mots de passe fournie par Oracle (script UTLPWDMG.SQL) ou que vousavez crée la votre, vous allez devoir utiliser une option supplémentaire : l'option REPLACE avecl'ancien mot de passe afin que celui-ci puisse être passé à la fonction de vérification de mot depasse.

Exemple :

ALTER USER < login de l'utilisateur > IDENTIFIED BY < nouveau mot de passe > REPLACE < ancien mot de passe >

Pour les DBAs :

Vous pouvez parfois, en tant que DBA, être confronté au type de problème suivant :

Devoir utiliser le compte d'un autre utilisateur mais sans changer son mot de passe. (Par exemplecet utilisateur dispose d'une procédure qui ne pourra être lancée que par cet utilisateur car lacondition a été codée dans la procédure).

Voici une méthode qui va vous permettre de prendre la place de cet utilisateur sans changer sonmot de passe.

-- On se connecte en DBAsqlplus system/<mot de passe>@< chaine de connexion > -- On fait un export text des informations de l'utilisateur dont on souhaite prendre la placeSPOOL c:\saveuser.sqlSELECT 'ALTER USER '||username ||' IDENTIFIED BY VALUES '''||password||''' ;'FROM dba_usersWHERE username='< login du user >';SPOOL OFF

-- On change son mot de passALTER USER < login du user > IDENTIFIED BY tata;

-- On se connecte en tant que l'autre utilisateurCONNECT < login du user >/tata

-- On fait nos actions...

-- On execute l'ordre SQL contenu dans saveuser.sqlALTER USER < login du user > IDENTIFIED BY VALUES '< mot de passe crypté >' ;

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

Page 7: Gestion des utilisateurs.pdf

06/08/13 Gestion des utilisateurs

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

mot de passe, et sans que cela soit visible par l'utilisateur. L'option IDENTIFIED BY VALUES est unedes nombreuses commandes cachées d'Oracle.

2.2. Modification des quotas

La syntaxe de modification des quotas d'un utilisateur n'est pas différente de la syntaxe utiliséelors de la création de l'utilisateur.

Cependant il est important de noter que si un utilisateur disposait de 1Mo de quotas sur unTABLESPACE 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 vidées ou supprimées,mais cela sinifiera que ses tables ne pourront pas s'allouer d'extents supplémentaires.

Exemple :

ALTER USER scott QUOTA 15M ON tbs_users QUOTA 0M ON tools;

2.3. Modification des TABLESPACES par défaut

La syntaxe à utiliser n'est pas différente de la syntaxe de création. Cette commande vouspermettra de modifier les TABLESPACES par défaut de l'utilisateur. Cela ne déplacera pas les objetsdes anciens TABLESPACES.

Exemple :

ALTER USER scott DEFAULT TABLESPACE tbs_users2 TEMPORARY TABLESPACE tmp2;

2.4. Modification du status d'un utilisateur

Pour des raisons de sécurité, il peut parfois être utile de vérouiller le compte d'un utilisateur pouréviter que celui-ci soit utilisé de manière frauduleuse. Cette méthode peut aussi être utilisée pourorganiser des objets dans un schéma sans que l'on puisse utiliser l'utilisateur en question.

Voici un exemple d'activation et de verrouillage d'un compte utilisateur :

-- Verrouillage du compteALTER USER scott ACCOUNT LOCK;

-- Activation du compteALTER USER scott ACCOUNT UNLOCK;

2.5. Syntaxe complète de l'ordre ALTER USER

Voici la structure complète d'un ordre ALTER USER :

Page 8: Gestion des utilisateurs.pdf

06/08/13 Gestion des utilisateurs

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

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 données avec le mot de passe spécifié.

IDENTIFIED EXTERNALLY :Active l'authentification par le système 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 données par défaut à l'utilisateur.

TEMPORATY TABLESPACE nom du tablespace :Permet d'attribuer un TABLESPACE temporaire par défaut à l'utilisateur.

QUOTA options ON nom du tablespace :Permet de définir le quota d'espace attribué à l'utilisateur sur un TABLESPACE précis.

PROFILE nom du profil :Permet d'attribuer un profil limitant les ressources système de l'utilisateur.

PASSWORD EXPIRE :Permet de faire expirer le mot de passe de l'utilisateur pour que celui-ci le change lors de lapremière connexion.

ACCOUNT LOCK / UNLOCK :Permet d'activer ou de désactiver un compte utilisateur.

DEFAULT ROLE :Ces options vont permettre de définir lors de la modification d'un utilisateur son ou ses rôles pardéfaut. Ces rôles seront activés 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 schéma.

Il est important de noter qu'un utilisateur actuellement connecté à la base ne pourra pas êtresupprimé.

Par exemple :

SQL> DROP USER scott CASCADE;DROP USER scott CASCADE*ERREUR à la ligne 1 :ORA-01940: impossible supprimer un utilisateur qui est connecté

3.1. Supprimer un utilisateur avec un schéma vide

Pour cette méthode nous utiliserons juste la commande DROP USER.

Cette méthode est la méthode par défaut. Il faut juste vérifier que le schéma de l'utilisateur soitvide lors de l'exécution de cette commande. Sinon il en résultera l'erreur suivante :

Page 9: Gestion des utilisateurs.pdf

06/08/13 Gestion des utilisateurs

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

SQL> DROP USER scott;DROP USER scott*ERREUR à la ligne 1 :ORA-01922: CASCADE à spécifier pour supprimer 'SCOTT'

Cette erreur est due au fait que Oracle ne supprimera pas les objets à l'intérieur du schéma del'utilisateur et qu'il vous faudra utiliser l'option CASCADE du chapitre suivant.

Voici un exemple de suppression d'un utilisateur ayant un schéma vide :

SQL> DROP USER test;

Utilisateur supprimé.

3.2. Supprimer un utilisateur avec son schéma

Lorsque vous souhaitez supprimer un utilisateur et tous les objets de son schéma, vous devezalors utiliser l'option CASCADE.

Cette option va automatiquement effacer tout les objets contenus dans le schéma de l'utilisateur. Si le schéma contient des tables, Oracle effacera alors automatiquement toute les contraintesd'intégrités des tables et toutes les contraintes d'intégrités dans les schémas d'autres utilisateursqui faisaient références aux contraintes UNIQUE et PRIMARY KEY du schéma qui est en cours desuppression.

Oracle supprimera aussi tous les index liés aux colonnes des tables, ainsi que tout les triggers, lestypes de données (avec l'option FORCE).

Oracle invalidera mais ne supprimera pas les objets contenus dans d'autres schéma mais quifaisaient références au schéma supprimé.

Par contre, Oracle ne supprimera pas les rôles créés par l'utilisateur.

Voici un exemple de suppression d'un utilisateur et de son schéma :

SQL> DROP USER scott CASCADE;

Utilisateur supprimé.

3.2. Syntaxe complète de l'ordre DROP USER

Voici la structure complète 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 schéma de l'utilisateur qui sera supprimé.

4. Informations sur les utilisateurs

Nous allons ici voir les différentes vues qui seront utile pour obtenir des informations sur lesutilisateurs que nous avons créés.

Les vues qui nous seront utiles sont les vues DBA_USERS et DBA_TS_QUOTAS (voire les vuesUSER_USERS qui contiendra les informations de l'utilisateur courant et USER_TS_QUOTAS quicontiendra les informations sur les quotas de l'utilisateur courant).

4.1. Descriptif de la vue DBA_USERS

Colonne Type Description

USERNAME VARCHAR2(30) NOT NULL Login de l'utilisateur

USER_ID NUMBER NOT NULL ID de l'utilisateur

PASSWORD VARCHAR2(30) Mot de passe encrypté

Statut du compte: OPEN :ouvert EXPIRED : Doitchanger son mot de passeEXPIRED(GRACE) : Doitchanger son mot de passe(en période de grace)LOCKED(TIMED) : Vérouillé

Page 10: Gestion des utilisateurs.pdf

06/08/13 Gestion des utilisateurs

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

Developpez.com

Nous contacterParticipezInformations légales

Services

Forum OracleBlogsHébergement

Partenaires

Hébergement Web

ACCOUNT_STATUS VARCHAR2(32) NOT NULL

LOCKED(TIMED) : Vérouillépour un certain tempsLOCKED : Vérouillé demanière définitive EXPIRED& LOCKED(TIMED) : Doitchanger son mot de passeet vérouillé pour uncertain tempsEXPIRED(GRACE) &LOCKED(TIMED) : Doitchanger son mot de passe(en période de grace) etvérouillé pour un certaintemps EXPIRED & LOCKED: Vérouillé et doit changerson mot de passeEXPIRED(GRACE) &LOCKED : Doit changerson mot de passe (enpériode de grace) etvérouillé

LOCK_DATE DATEDate à laquelle le comptea été vérouillé si le statusest LOCKED

EXPIRY_DATE DATEDate du prochainchangement de mot depasse

DEFAULT_TABLESPACE VARCHAR2(30) NOT NULLTABLESPACE par défautpour les données

TEMPORARY_TABLESPACE VARCHAR2(30) NOT NULLTABLESPACE par défautpour les donnéestemporaires

CREATED DATE NOT NULLDate de création del'utilisateur

PROFILE VARCHAR2(30) NOT NULLNom du profil assigné àl'utilisateur

INITIAL_RSRC_CONSUMER_GROUP VARCHAR2(30)Nom du groupe deconsomation desressources

EXTERNAL_NAME VARCHAR2(4000)Nom exterieur (pour optionIDENTIFIED GLOBALLY)

4.2. Descriptif de la vue DBA_TS_QUOTAS

Colonne Type Description

TABLESPACE_NAME VARCHAR2(30) NOT NULL Nom du TABLESPACE

USERNAME VARCHAR2(30) NOT NULLNom de l'utilisateur à qui cequota est assigné

BYTES NUMBERNombre de Bytes allouéactuellement à l'utilisateursur le TABLESPACE

MAX_BYTES NUMBER

Quota maximal en bytes del'utilisateur sur ceTABLESPACE (contiendra -1si il n'y a pas de limite)

BLOCKS NUMBER NOT NULLNombre de blocs allouéactuellement à l'utilisateursur le TABLESPACE

MAX_BLOCKS NUMBER

Quota maximal en blocs del'utilisateur sur ceTABLESPACE (contiendra -1si il n'y a pas de limite)

Le guide O rac le par O rafrance, Helyos et SheikYerbouti

Responsable bénévole de la rubrique Oracle : le Rédacteur en Chef - Contacter par email

Copyright © 2000-2013 - www.developpez.com