Database User Creation and Management

Database Management, SQL · lab

Voir tous les documents en bases de données

04/03/2015

SQL> DESC ALL_USERS;

Nom NULL ? Type

-------- -------- -----------

USERNAME NOT NULL VARCHAR2(30)

USER_ID NOT NULL NUMBER

CREATED NOT NULL DATE

SQL> DESC USER_USERS;

2

I.I.

II.II.

III.III.

IV.IV.

SQL> DESC DBA_USERS;

Nom NULL ? Type

--------------------------- -------- -----------

USERNAME

USER_ID

PASSWORD

ACCOUNT_STATUS

LOCK_DATE

EXPIRY_DATE

DEFAULT_TABLESPACE

TEMPORARY_TABLESPACE

CREATED

PROFILE

INITIAL_RSRC_CONSUMER_GROUP VARCHAR2(30)

VARCHAR2(4000)

EXTERNAL_NAME

NOT NULL VARCHAR2(30)

NOT NULL NUMBER

VARCHAR2(30)

NOT NULL VARCHAR2(32)

DATE

DATE

NOT NULL VARCHAR2(30)

NOT NULL VARCHAR2(30)

NOT NULL DATE

NOT NULL VARCHAR2(30)

Nom NULL ? Type

-------------------- -------- -----------

USERNAME NOT NULL VARCHAR2(30)

USER_ID NOT NULL NUMBER

ACCOUNT_STATUS NOT NULL VARCHAR2(32)

LOCK_DATE DATE

EXPIRY_DATE DATE

DEFAULT_TABLESPACE NOT NULL VARCHAR2(30)

TEMPORARY_TABLESPACE NOT NULL VARCHAR2(30)

CREATED NOT NULL DATE

INITIAL_RSRC_CONSUMER_GROUP VARCHAR2(30)

EXTERNAL_NAME VARCHAR2(4000)

R cup rer les noms users, leurs

dates de cr ation et les noms de

leurs tablespaces par d faut.

SQL> select username, created, default_tablespace from dba_users;

3

4

1

(cid:1) Un utilisateur de base de donn es

(cid:1) correspond un login

(cid:1) a re u certains privil ges.

(cid:1) est stock dans le dictionnaire de donn es (DBA_USERS)

(cid:1) dispose d'un espace de stockage pour ses objets qui seront

alors stock s dans son sch ma.

04/03/2015

(cid:1) Les tapes de cr ation d'un utilisateur Oracle

1. Choisir un nom d'utilisateur

2. Choisir une m thode d'authentification

(cid:1) R gles de nommage respecter:

(cid:1) Taille maximale 30 caract res.

(cid:1) Ne devra contenir que des lettres de et des chiffres [0-9].

3. Choisir les TABLESPACEs que l'utilisateur pourra utiliser

(cid:1) Tout les caract res accentu s ou autres sont viter.

4. D finir les quotas sur chaques TABLESPACEs

(cid:1) Vous pourrez galement utiliser les symboles #, $, _.

5. D finir les TABLESPACEs par d faut de l'utilisateur

(cid:1) Le login devra commencer par une lettre.

6. Cr er l'utilisateur

7. Assigner les r les et privil ges l'utilisateur

(cid:1) Si vous d sirez utiliser des logins compos uniquement de

chiffres vous devrez alors lentourer entre des ".

5

Il existe diff rents type d'authentification :

(cid:1) Authentification par la base de donn es.

(cid:1) Le mode par d faut.

(cid:1) L'utilisateur est authentifi avec le mots de passe stock s dans la BD.

(cid:1) La BD devra tre ouverte pour qu'un utilisateur puisse se connecter.

(cid:1) Authentification par le syst me d'exploitation.

(cid:1) L'utilisateur n'aura besoin de s'authentifier qu'une seule fois sur son

syst me d'exploitation.

(cid:1) Si l'utilisateur oublie de se d connecter de sa machine, il sera alors

tr s simple de se connecter la base sans avoir fournir de mot de

Publicité

passe.

(cid:1) Authentification par le r seau.

7

6

8

2

(cid:1) IDENTIFIED BY mot de passe

Active l'authentification par la base de donn es avec le mot de passe sp cifi .

(cid:1) IDENTIFIED EXTERNALLY

Active l'authentification par le syst me d'exploitation

(cid:1) IDENTIFIED GLOBALLY AS 'nom externe

Active l'authentification par un LDAP externe.

(cid:1) DEFAULT TABLESPACE nom du tablespace

Permet d'attribuer un TABLESPACE de donn es par d faut l'utilisateur.

(cid:1) TEMPORATY TABLESPACE nom du tablespace

Permet d'attribuer un TABLESPACE temporaire par d faut l'utilisateur.

(cid:1) QUOTA options ON nom du tablespace

Permet de d finir le quota d'espace attribu l'utilisateur sur un TABLESPACE pr cis.

(cid:1) PROFILE nom du profil

Permet d'attribuer un profil limitant les ressources syst me de l'utilisateur.

(cid:1) PASSWORD EXPIRE

Permet de faire expirer le mot de passe de l'utilisateur pour que celui-ci le change lors

de la premi re connexion.

(cid:1) ACCOUNT LOCK / UNLOCK

Permet d'activer ou de d sactiver un compte utilisateur.

9

CREATE USER SCOTT

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;

(cid:2) L'utilisateur SCOTT aura le mot de

passe mypass1.

(cid:2) Son mot de passe expire la

premi re connexion donc il doit le

changer.

(cid:2) Son TABLESPACE par d faut sera

tbs_users avec un quota de 10Mo

(cid:2) Son tablespace temporaire sera le

TABLESPACE tmp_users avec un

quota de 5M.

(cid:2) Il aura aussi la possibilit d'utiliser le

TABLESPACE tools avec un quota

de 5Mo.

(cid:2) Il a le profile app_user.

10

(cid:1) Modification de son mot de passe

(cid:1) Modification des TABLESPACES par d faut

ALTER USER <login_utilisateur> IDENTIFIED BY <new_mot_passe>

ALTER USER scott DEFAULT TABLESPACE tbs_users2 TEMPORARY TABLESPACE tmp2;

(cid:1) Modification des quotas

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

Si un utilisateur disposait de 1Mo de quotas sur un TABLESPACE

et qu'il en avait utilis la moiti avec des tables, 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 signifiera que

ses tables ne pourront pas s'allouer d'extents suppl mentaires.

Cela ne d placera pas les objets des anciens TABLESPACES.

(cid:1) Modification du status d'un utilisateur

-- Verrouillage du compte

ALTER USER scott ACCOUNT LOCK;

-- Activation du compte

ALTER USER scott ACCOUNT UNLOCK;

11

12

04/03/2015

3

(cid:1) Un utilisateur actuellement connect la base ne pourra

pas tre supprim .

(cid:1) Supprimer un utilisateur avec un sch ma vide

(cid:1) Supprimer un utilisateur avec son sch ma

14

13

15

(cid:1) Les privil ges sont des droits pour ex cuter des requ tes

(cid:1) Le plus haut niveau de privil ges sont des privil ges DBA

(cid:1) Les utilisateurs doivent poss der

(cid:1) des privil ges syst me pour se connecter la base de donn es,

(cid:1) et les privil ges objets pour manipuler des donn es

(cid:1) Un r le est un regroupement de privil ges.

(cid:1) Une fois cr il peut tre assign un utilisateur ou un autre r le

(cid:1) Les privil ges de niveau syst me

(cid:1) permettent la cr ation, modification, suppression, ex cution de

groupes d'objets

(cid:1) les privil ges CREATE TABLE, CREATE VIEW, CREATE SEQUENCE

permettent l'utilisateur qui les a re u de cr er des tables, des vues

et des s quences

(cid:1) Les privil ges de niveau objet

Publicité

(cid:1) permettent les manipulations sur des objets sp cifiques

(cid:1) les privil ges SELECT, INSERT, UPDATE, DELETE sur la table

SCOTT.EMP permettent l'utilisateur qui les a re u de s lectionner,

ajouter, modifier et supprimer des lignes dans la table EMP

appartenant l'utilisateur SCOTT

16

04/03/2015

4

04/03/2015

(cid:2) systeme_privilege repr sente un privil ge syst me

(cid:2) role repr sente un r le pr alablement cr

(cid:2) ALL PRIVILEGES repr sente tous les privil ges syst me

(cid:2) user repr sente le nom de l'utilisateur qui doit b n ficier du privil ge

(cid:2) PUBLIC assigne le privil ge tous les utilisateurs

(cid:2) WITH ADMIN OPTION assigne l'utilisateur le droit d'assigner, de retirer, de

modifier et de supprimer son tour les privil ges du r le re us

18

(cid:1) Lorsqu'un utilisateur est cr avec l'instruction CREATE

USER, il ne dispose encore d'aucun droit car aucun

privil ge ne lui a encore t assign

(cid:1) Il ne peut m me pas se connecter la base

(cid:3) Il faut donc lui assigner les privil ges n cessaires

(cid:1) Pour lui assigner des privil ges il faut utiliser l'instruction

GRANT

17

(cid:1) Pour que l'utilisateur puisse simplement se connecter la base,

il doit b n ficier du privil ge syst me CREATE SESSION

(cid:1) lui assigner des droits de cr ation de table

(cid:1) Puis les droits de cr ation de vues

19

20

5

(cid:1) object_privilege repr sente un privil ge objet

(cid:1) role repr sente un r le pr alablement cr

(cid:1) ALL PRIVILEGES repr sente tous les privil ges assign s l'ex cuteur de

(cid:1) Assigner l'utilisateur le droit de s lectionner, ins rer, modifier

et supprimer des lignes dans la table EMP de l'utilisateur

SCOTT

l'instruction

(cid:1) column repr sente le nom de colonne d'une table

(cid:1) schema repr sente le nom d'un sch ma

(cid:1) object repr sente le nom d'un objet du sch ma

(cid:1) directory_name repr sente le nom d'une directory

(cid:1) JAVA SOURCE repr sente le nom d'une source Java

(cid:1) JAVA RESOURCE repr sente le nom d'une ressource Java

(cid:1) WITH GRANT OPTION assigne l'utilisateur le droit d'assigner son tour le

privil ge re u un autre utilisateur (WITH GRANT OPTION s'applique un

utilisateur ou PUBLIC, mais pas un r le)

(cid:1) WITH HIERARCHY OPTION assigne le privil ges aux sous-objets

(cid:1) Une liste de colonnes peut tre indiqu e dans l'instruction afin

de restreindre davantage les droits sur une table

21

L'utilisateur peut modifier la table SCOTT.EMP mais uniquement

les colonnes JOB et MGR

22

(cid:1) Pour pouvoir mettre jour ou supprimer des lignes d'une table,

les privil ges UPDATE et DELETE ne suffisent pas. Le privil ge

SELECT est n cessaire

(cid:1) Un utilisateur poss de automatiquement tous les privil ges sur

un objet qui lui appartient

(cid:1) Un utilisateur ne peut pas donner plus de privil ges qu'il n'en a

re u

(cid:1) S'il n'a pas re u le privil ge avec l'option WITH GRANT OPTION,

un utilisateur ne peux pas assigner son tour ce m me

(cid:1) Lorsque la liste des privil ges est importante, utiliser linstruction

GRANT devient rapidement une t che fastidieuse et r p titive

Service

comptabilit

user1

Re oit un certain

nombre de privil ges

sur un certain nombre

d'objets

user2, &,n

Ont toutes les chances de

se voir assigner des

privil ges identiques

privil ge

23

(cid:1) C'est pourquoi il est souhaitable de pouvoir regrouper des

privil ges identiques dans un m me ensemble (cid:4) r le

24

Base de donn es

04/03/2015

6

04/03/2015

(cid:1) Lorsque le r le est cr , il ne contient rien et il faut l'alimenter

l'aide d'instructions GRANT

(cid:2) role repr sente le nom du r le

(cid:2) NOT IDENTIFIED (d faut) aucun mot de passe n'est n cessaire pour activer le r le

(cid:2) IDENTIFIED BY password un mot de passe est n cessaire pour activer le r le

(cid:2) IDENTIFIED USING package un package sera utilis pour fixer les droits de

Publicité

l'utilisateur

Une fois le r le cr , il peut tre assign un utilisateur ou un

autre r le

(cid:2) IDENTIFIED EXTERNALLY autorisation provient d'une source externe (S.E.)

(cid:2) IDENTIFIED GLOBALLY pour un user GLOBAL g r par exemple par Enterprise

Directory Service

(cid:1) Trois r les existent en standard

(cid:1) CONNECT

(cid:1) RESOURCE

(cid:1) DBA

25

27

(cid:2) Ce r le permet l'ouverture (CREATE SESSION) et la modification

(ALTER SESSION) d'une session

(cid:2) La cr ation de tables, vues, clusters, s quences, synonymes et liens

de bases de donn es

(cid:2) L'option ADMIN OPTION positionn e NO indique que ces privil ges

ne peuvent pas tre assign s un autre utilisateur ou r le

26

28

7

(cid:1) Ce r le permet de cr er des types, tables, clusters, op rateurs,

s quences, index et proc dures

(cid:1) Le r le RESOURCE accorde un privil ge UNLIMITED QUOTA l'utilisateur et

n'est donc assigner qu'en connaissance de cause

(cid:1) La liste des privil ges assign s au r le DBA est octroy aux utilisateurs

ayant des droits d'administration de la base

(cid:1) Il est fortement d conseill d'utiliser ces r les standards car ils accordent

trop de droits aux utilisateurs

04/03/2015

29

30

(cid:1) Un r le peut tre supprim en utilisant l'instruction

DROP ROLE

(cid:1) Le r le sp cifi ainsi que tous les privil ges qui lui sont

associ s sont supprim s de la base et galement retir s

tous les utilisateurs qui en b n ficiaient

(cid:1) Les privil ges syst me qui ont t assign s des

utilisateurs ou des r les peuvent tre retir s avec

l'instruction REVOKE

31

32

(cid:1) Retirer des privil ges un utilisateur ne supprime pas son

sch ma ni les objets qu'il contient

8

(cid:1) CASCADE CONSTRAINTS supprime toutes les contraintes d'int grit r f rentielles

d finies par l'utilisateur

(cid:1) FORCE retire le privil ge EXECUTE sur les types objet

33

34

(cid:1) Un PROFIL est un ensemble de limitations syst me.

(cid:1) Un utilisateur ne peut pas d passer les limitations impos es par son

PROFIL.

(cid:1) Disposer du privil ge syst me CREATE PROFILE.

CREATE PROFILE profile LIMIT

{ resource_parameters

| password_parameters }... ;

(cid:1) FAILED_LOGIN_ATTEMPTS

(cid:1) D finir le nombre maximal de tentatives de connexion.

(cid:1) Si le nombre de connexion donn par ce param tre est atteint le

compte sera alors verrouill pendant une p riode donn e par le

param tre PASSWORD_LOCK_TIME

(cid:1) PASSWORD_LIFE_TIME

(cid:1) D finir la dur e d'utilisation du m me mot de passe (en jours).

(cid:1) Apr s cette dur e, Oracle demandera automatiquement l'utilisateur

de bien vouloir changer son mot de passe.

(cid:1) PASSWORD_REUSE_TIME

(cid:1) D finir le d lai (en jours) entre deux utilisations du m me mot de

Les limitations du mot de passe

passe.

Deux types de

limitations

Les limitations des ressources syst me

35

(cid:1) Si celui ci vaut 30 et que votre mot de passe actuel est toto. Il vous

faudra attendre 30 jours compter de la date de votre changement de

mot de passe avant de pouvoir nouveau utiliser toto comme mot de

passe.

36

04/03/2015

9

(cid:1) PASSWORD_REUSE_MAX

(cid:1) D finir le nombre de r utilisation du m me mot de passe (cons cutive

ou non).

(cid:1) PASSWORD_LOCK_TIME

(cid:1) D finir la dur e de verrouillage du compte utilisateur apr s avoir

bloqu le compte avec le param tre FAILED_LOGIN_ATTEMPTS.

(cid:1) Le compte sera alors automatiquement d verrouill lorsque le temps

d fini par ce param tre sera atteint.

(cid:1) Ce param tre sera d fini en jours

(cid:2) pour sp cifier un nombre en minutes (diviser par 1440) en heures (diviser

par 24) : exemple 30 minutes donnera 30/1440

Publicité

(cid:2) La valeur UNLIMITED provoque un verrouillage d finitif et donc une action

d'un administrateur pour d bloquer le compte

(cid:1) &

37

(cid:1) Si le param tre PASSWORD_REUSE_TIME a t initialis avec une valeur num rique, alors

le param tre PASSWORD_REUSE_MAX devra tre UNLIMITED et inversement.

(cid:1) Si les deux param tres PASSWORD_REUSE_TIME et PASSWORD_REUSE_MAX poss dent la

valeur UNLIMITED, alors Oracle n'utilisera aucune de ces deux limitations de mot de

passe.

(cid:1) Si le param tre PASSWORD_REUSE_MAX poss de la valeur DEFAULT et que le param tre

PASSWORD_REUSE_TIME est UNLIMITED, alors Oracle utilisera le param tre

PASSWORD_REUSE_MAX avec la valeur d finie dans le profil par d faut.

(cid:1) Si le param tre PASSWORD_REUSE_TIME est DEFAULT et PASSWORD_REUSE_MAX est

UNLIMITED, alors Oracle utilisera le param tre PASSWORD_REUSE_TIME avec la valeur

d finie dans le profil DEFAULT.

(cid:1) Si les 2 param tres PASSWORD_REUSE_TIME et PASSWORD_REUSE_MAX sont DEFAULT,

alors Oracle utilisera les valeurs d finies dans le profil DEFAULT.

(cid:1) La valeur DEFAULT est une valeur particuli re, lorsque vous assignerez la valeur

DEFAULT une limitation alors Oracle ira r cup rer la valeur de la limitation dans le

profil DEFAULT.

38

(cid:1) SESSIONS_PER_USER

(cid:1) IDLE_TIME

(cid:1) D finir le nombre de session maximum qu'un utilisateur pourra ouvrir.

(cid:1) D finir le temps en minutes pour la dur e d'inactivit maximale d'une

(cid:1) CPU_PER_SESSION

session.

(cid:1) D finir le temps de processeur maximum en centi mes de secondes

(cid:1) A la fin du temps imparti la session sera automatiquement

qu'une session pourra utiliser.

(cid:1) CPU_PER_CALL

(cid:1) D finir le temps de processeur maximum en centi mes de secondes

qu'un "appel serveur" pourra utiliser.

(cid:1) On appellera "appel serveur" un passage de requ te, une ex cution

de requ te ou la r cup ration d'une requ te (FETCH)

(cid:1) CONNECT_TIME

(cid:1) D finir le temps en minutes pour la dur e de connexion maximale

d'une session.

(cid:1) A la fin du temps imparti la session sera automatiquement

d connect e.

d connect e.

(cid:1) LOGICAL_READS_PER_SESSION

(cid:1) D finir le nombre maximal de bloc lus durant une session.

(cid:1) On parlera ici des blocs lus sur le disque et dans la m moire.

(cid:1) LOGICAL_READS_PER_CALL

(cid:1) D finir le nombre maximal de bloc lus durant un "appel serveur".

(cid:1) On parlera ici des blocs lus sur le disque et dans la m moire.

(cid:1) PRIVATE_SGA

(cid:1) D finir la taille en Kbytes ou MBytes que pourra utiliser une session.

39

40

04/03/2015

10

(cid:2) Changer le nombre de tentative de connexion rat es ( cinq)

avant que le compte de l'utilisateur ne soit verrouill .

(cid:2) Modifier la dur e de blocage du compte qui passe 1 jour.

ALTER PROFILE app_user LIMIT

FAILED_LOGIN_ATTEMPTS 5

PASSWORD_LOCK_TIME 1;

42

(cid:2) Etablir les limitations de mot de passe et les limitations

syst me.

(cid:2) Cr er le profil

(cid:2) Attribuer le profil aux utilisateurs qui devront tre limit s

CREATE PROFILE app_user

LIMIT

SESSIONS_PER_USER

CPU_PER_SESSION

CPU_PER_CALL

CONNECT_TIME

LOGICAL_READS_PER_SESSION

LOGICAL_READS_PER_CALL

PRIVATE_SGA

UNLIMITED

UNLIMITED

3000

45

DEFAULT

1000

15K;

ALTER USER scott PROFILE app_user;

DROP PROFILE app_user CASCADE;

(cid:2) Ici tous les utilisateurs qui disposaient du profil

app_user se verront automatiquement assigner le

profil DEFAULT.

41

43

04/03/2015

11