Gestion User Profile
Gestion User Profile
Gestion User Profile
utilisateurs
1
Notion de schéma
Un schéma est un ensemble nommé d'objets, tels que des tables,
des vues, des procédures et des packages, associés à un utilisateur.
Lorsque vous créez un utilisateur de base de données, un schéma
correspondant portant le nom de l'utilisateur est créé. Un utilisateur
ne peut être associé qu'à un schéma du même nom ; par
conséquent, nom utilisateur et schéma sont souvent utilisés
indifféremment.
2
Lister les utilisateurs sur une BD
1 Comptes d’administration
Oracle crée un ensemble d’utilisateurs par défaut lors de l’installation d’une nouvelle
base de données.
1 Les comptes d’administration : sys et system
2 Les utilisateurs associés à des fonctionnalités spéciales. (e.g. Oracl_OCM : utilisateur
propriétaire des packages utilisés par l’outil Oracle Configuration Manager)
3 Des utilisateurs simples tels que iir4 et HR
3
Remarque: SYS vs SYSTEM
Après l’installation il est préférable de modifier les mots de passe des
utilisateurs Sys et System.
Dans une base fraîchement créée, SYS est le seul compte qui possède le privilège
SYSDBA, ce qui permet en particulier d'arrêter et de redémarrer une base, et d'en créer
une nouvelle.
SYSTEM est muni du rôle DBA, et peut donc effectuer la plupart des tâches
administratives liées à une base Oracle, à l'exception de celles citées ci-dessus (arrêter et
redémarrer une base, et d'en créer une nouvelle).
4
Création d’un utilisateur
CREATE USER nomUtilisateur
IDENTIFIED BY motDePasse
[ DEFAULT TABLESPACE nomTablespace ]
[ TEMPORARY TABLESPACE nomTablespace ]
[ QUOTA {integer [K | M ] | UNLIMITED } ON tablespace ]
[ QUOTA {integer [K | M ] | UNLIMITED } ON tablespace]
[...]
[ PASSWORD EXPIRE ]
[ ACCOUNT { LOCK | UNLOCK }]
Où :
BY password indique que l'utilisateur est authentifié par le dictionnaire de
données et qu'il doit fournir un mot de passe pour se connecter.
DEFAULT TABLESPACE ou TEMPORARY TABLESPACE désigne le tablespace par
défaut ou le tablespace temporaire de l'utilisateur.
QUOTA définit l'espace maximum alloué aux objets détenus par l'utilisateur dans
le tablespace (le quota peut être défini par un entier représentant des octets ou
des kilo-octets et des mégaoctets. Le mot-clé UNLIMITED permet d'indiquer que
les objets détenus par l'utilisateur peuvent utiliser l'ensemble de l'espace
disponible du tablespace. Par défaut, aucun quota de tablespace n'est affecté aux
utilisateurs).
PASSWORD EXPIRE force l'utilisateur à réinitialiser le mot de passe lorsqu'il se
connecte à la base de données à l'aide de SQL*Plus
ACCOUNT LOCK/UNLOCK permet de verrouiller ou de déverrouiller explicitement
le compte de l'utilisateur (la valeur par défaut est UNLOCK).
7
Exercice
Créez l’utilisateur « iir4 » avec le mot de passe « emsi », en utilisant une
commande minimale
Sans utilisation de la vue système dba_users, comment peut on savoir quel est
le tablespace permanent par défaut de l’utilisateur «IIR4 »?
Affichez le tablespace permanent et temporaire par défaut de l’utilisateur
« iir4 », ainsi que l’état de son compte ( bloqué ou non) en utilisant une vue
système.
Accordez à l’utilisateur « IIR4 » les droits « Create session » et « create table »
Lancez une session pour « IIR4 » et créez la table suivante: Client(idCli, nomCli).
Qu’est ce que vous remarquez?
9
Exemples
Créez l’utilisateur « iir4 » avec le mot de passe « emsi », en utilisant une
commande minimale
Sans utilisation de la vue système dba_users, comment peut on savoir quel est
le tablespace permanent par défaut de l’utilisateur «IIR4 »?
10
Exemples
2- Sans utilisation de la vue système dba_users, comment peut on savoir quel est
le tablespace permanent par défaut de l’utilisateur «IIR4 »?
11
Exemples
3- Afficher le tablespace permanent et temporaire par défaut de l’utilisateur
« iir4 », ainsi que l’état de son compte ( bloqué ou non) en utilisant une vue
système.
12
Exemples
4- Accordez à l’utilisateur « IIR4 » les droits « Create session » et « create table »
13
Exemples
5-
14
Quelle est la cause de
cette erreur?
17
Cause de cette erreur
L’utilisateur IIR4 a le privilège « Create table » qui lui
permet de lancer l’action de création de table,
L’utilisateur IIR4 n’a pas de quota sur le tablespace
« SYSTEM » qui est son tablespace permanent par
défaut.
Le quota définit l'espace maximum alloué aux objets
détenus par l'utilisateur dans le tablespace
18
Afficher les quotas sur les tablespaces
19
Afficher les quotas sur les tablespaces
Column Datatype NULL Description
TABLESPACE_NAME VARCHAR2(30) NOT NULL Tablespace name
USERNAME VARCHAR2(30) NOT NULL User with resource rights
on the tablespace
20
Afficher les quotas sur les tablespaces
Affichez les quotas de l’utilisateur IIR4.
Par défaut un utilisateur a un quota NULL sur tous les tablespaces. Par
conséquent il n’apparait pas sur la table dba_ts_quotas
21
Comment
ajouter/supprimer un
quota ?
22
Modifier un utilisateur
Alter USER nomUtilisateur
IDENTIFIED BY motDePasse
[ DEFAULT TABLESPACE nomTablespace ]
[ TEMPORARY TABLESPACE nomTablespace ]
[ QUOTA {integer [K | M ] | UNLIMITED } ON tablespace ]
[ QUOTA {integer [K | M ] | UNLIMITED } ON tablespace]
[...]
[ PASSWORD EXPIRE ]
[ ACCOUNT { LOCK | UNLOCK }]
23
Modifier un utilisateur (ajouter un quota)
Exemple 1:
24
Modifier un utilisateur (Ajouter un
quota)
Exemple 2: ajouter un quota sur un tbs différent du tbs par défaut
25
Modifier un utilisateur (Supprimer un
quota)
Supprimer un quota
26
Remarque:
Quand on accorde à un utilisateur le rôle « resource », il détiendra
automatiquement le privilège « Unlimited tablespace » qui lui permet d’utiliser
tout l’espace disponible sur les tablespaces.
27
Remarque:
Il peut être judicieux d'utiliser des quotas car des quotas
illimités peuvent créer des problèmes d'espace. De plus, les
utilisateurs n’ont besoin d’aucun quota sur les tablespaces
temporaires ou sur les tablespaces de rollback.
28
Comment modifier le
mot de passe d’un
utilisateur?
29
Modifier le mot de passe
Solution 1: A partir d’une session active de l’utilisateur concerné
30
Modifier le mot de passe
Solution 2: A partir d’une session Admin
31
Modifier le mot de passe
Solution 3: A partir d’une session Admin en spécifiant un MP temporaire
32
Modifier le mot de passe
Solution 3: A partir d’une session Admin en spécifiant un MP temporaire
33
Comment bloquer le
compte d’un utilisateur?
34
Bloquer le compte d’un utilisateur
35
Bloquer le compte d’un utilisateur
Problème: le blocage du compte ne prendra effet qu’à partir de la prochaine connexion !!!
Solution ?
36
Déconnecter les usagers
1- afficher les sessions actuellement ouvertes :
37
Déconnecter les usagers
1- afficher les sessions actuellement ouvertes :
38
Déconnecter les usagers
2- Déconnecter l’utilisateur IIR4:
39
Déconnecter les usagers
40
Comment supprimer un
utilisateur?
41
Supprimer un utilisateur
42
Supprimer un utilisateur
43
Conseils pour la création des utilisateurs
Il peut être intéressant d'utiliser l'option EXPIRE lors de la création de
l'utilisateur ce qui forcera l'utilisateur à changer son mot de passe lors
de sa première connexion.
Il est nécessaire de spécifier les tablespaces temporaire et par défaut
pour tous les utilisateurs afin d'éviter que le tablespace SYSTEM soit
utilisé par défaut.
Il peut être judicieux d'utiliser des quotas car des quotas illimités
peuvent créer des problèmes d'espace. De plus, les utilisateurs ne
nécessitent aucuns quotas sur les tablespaces temporaires ou sur les
tablespaces de rollback.
44
Exercice
Ecrire un script SQL permettant de déconnecter tous les utilisateurs connectés
actuellement
2
Gestion des Profils
2
Introduction
Comment pourrais-je limiter le nombre de sessions qui peuvent
être lancées par un utilisateur ?
Pourrais-je fixer un temps d’inactivité aux sessions des utilisateurs ?
Si je souhaite limiter le nombre de tentatives de connexion
erronées à 3 ? Que dois-je utiliser ?
Et la durée de vie des mots de passe ?
Qu’en est il de la gestion de la complexité
des mots de passe?
4
Fonctions des profils
Empêcher les utilisateurs d'exécuter des opérations qui utilisent beaucoup
de ressources.
Garantir que les utilisateurs sont déconnectés de la base de données
lorsque leur session reste inactive pendant un certain temps.
Affecter facilement aux utilisateurs des limites relatives aux ressources.
Gérer l'utilisation des ressources dans les systèmes de base de données
multiutilisateurs complexes et volumineux.
Contrôler l'utilisation des mots de passe.
6
Afficher les informations des profils
Permet d’afficher les profils avec leurs limitations Ressources et Mot de passe.
8
Afficher les informations des profils
Travail à faire:
10
Afficher les informations des profils
11
Profil DEFAULT
Les profils ne peuvent être affectés qu'à des utilisateurs. Vous ne pouvez les
affecter ni à des rôles, ni à d'autres profils.
20
Le serveur Oracle crée automatiquement le profil DEFAULT en
même temps que la base de données.
Si aucun profil spécifique n'est attribué explicitement à un
utilisateur, toutes les limites du profil DEFAULT s'appliquent.
13
Travail à faire:
14
Afficher les informations des profils
17
18
Afficher les informations des profils
19
20
Création d’un profil
CREATE PROFILE NomDuProfil LIMIT
FAILED_LOGIN_ATTEMPTS valeur
PASSWORD_LIFE_TIME valeur
PASSWORD_REUSE_TIME valeur
PASSWORD_LOCK_TIME valeur
PASSWORD_GRACE_TIME valeur
…….
21
22
Modification d’un profil
ALTER PROFILE NomDuProfil LIMIT
FAILED_LOGIN_ATTEMPTS valeur
PASSWORD_LIFE_TIME valeur
PASSWORD_REUSE_TIME valeur
PASSWORD_LOCK_TIME valeur
PASSWORD_GRACE_TIME valeur
…….
23
Exemple 1 (FAILED_LOGIN_ATTEMPTS
, PASSWORD_LOCK_TIME)
Travail à faire:
24
Exemple 1 (FAILED_LOGIN_ATTEMPTS)
1/(24*60*60) = 1 seconde= 1/86400
Solution: Création du profile 1 min= 1/(24*60)= 1/1440
25
Exemple 1 (FAILED_LOGIN_ATTEMPTS)
Solution: affectation du profil à l’utilisateur « u1 »
SYS
U1
26
Exemple 1 (FAILED_LOGIN_ATTEMPTS)
SQL> connect u1/u
ERROR:
ORA-01017: invalid username/password; logon denied
Solution: test et vérification
SQL> connect u1/u
ERROR:
ORA-01017: invalid username/password; logon denied
27
Exemple 2 (PASSWORD_LIFE_TIME,
PASSWORD_GRACE_TIME)
Travail à faire:
28
Exemple 2 (PASSWORD_LIFE_TIME,
PASSWORD_GRACE_TIME)
29
Exemple 3 (PASSWORD_REUSE_TIME,
PASSWORD_REUSE_MAX)
Travail à faire:
31
Exemple 3 (PASSWORD_REUSE_TIME,
PASSWORD_REUSE_MAX)
32
Remarques
Attention:
33
Remarques
Attention: Si le paramètre PASSWORD_REUSE_TIME a été initialisé avec
une valeur numérique, alors que le paramètre PASSWORD_REUSE_MAX est à
UNLIMITED, dans ce cas L’utilisateur ne pourra jamais réutiliser un mot de passe.
34
Remarques
Attention: Si le paramètre PASSWORD_REUSE_TIME a été initialisé avec une valeur numérique,
alors que le paramètre PASSWORD_REUSE_MAX est à UNLIMITED, dans ce cas
L’utilisateur ne pourra jamais réutiliser un mot de passe.
35
Exemple (PASSWORD_REUSE_TIME,
PASSWORD_REUSE_MAX)
36
Attention:
38
Références
https://docs.oracle.com/cd/B28359_01/server.111/b28286/statements_6010.htm#SQLRF01310
39
40
Gestion des limitations des mots de
passe
Limite Explication
FAILED_LOGIN_ATTEMPTS Nombre d’échecs de tentative de connexion autorisés avant
verrouillage du compte, 10 dans le profil DEFAULT.
42
Fonction de vérification de mot de passe
Effectue une vérification de complexité du mot de passe afin de
garantir qu'il respecte certaines règles.
43
44
Comment peut on créer et appliquer une
fonction de vérification des mot de passe ?
1. Ecrire votre fonction Pl/SQL pour la vérification;
2. Lancer l’exécution du script de la fonction;
3. Le paramètre PASSWORD_VERIFY_FUNCTION nomme une fonction
PL/SQL qui effectue une vérification de complexité avant l'affectation d'un
mot de passe, il faut alors modifier le profil en question;
Remarque: Les fonctions de vérification des mots de passe doivent appartenir
à l'utilisateur SYS et renvoyer une valeur booléenne (TRUE ou FALSE).
45
Exemple
46
Exemple
47
Exemple
48
Exemple
49
Exemple
50
Exemple
On peut personnaliser le message d’erreur :
51
Exemple
On peut personnaliser le message d’erreur :
52
52