Administration BD

1/20
100%

<!-- Slide number: 1 -->

Administration BD

Gestion des utilisateur, privilèges, rôles et profils

<!-- Slide number: 2 -->

#

Rôles et privilèges sont définis pour sécuriser l'accès aux données de la base

Un role est un regroupement de privilège, une fois crée il peut etre assigné à un role ou à un autre utilisateur.

<!-- Slide number: 3 -->

#

Gestion des privilèges

1- Introduction

Les privilèges sont de deux types :

  • Les privileges de niveau système (a peu prs 127 privilège)

permettent la création, modification, suppression, exécution de groupes d’objets.

exemple : create table, create vue, create sequence……

Les privilèges de niveau objet:

permettent des manipulations sur des objets spécifiques

exemple : les privilèges select , update , delete sur la table HR.employees.

<!-- Slide number: 4 -->

#

2- Assigner des privilèges système à un utilisateur : GRANT

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é.

Il ne peut même pas se connecter à la base !

GRANT syste_privilege | role | ALL PRIVILIGIES

TO user | role | PUBLIC

IDENTIFIED BY password

WITH ADMIN OPTION

N.B : ALL PRIVILIGES est un option dangereuse.

Exemple :

GRANT CREATE SESSION TO nom_utilisateur ;

GRANT CREATE TABLE TO nom_utilisateur ;

GRANT CREATE VIEW TO nom_utilisateur ;

Ou

GRANT CREATE SESSION ,CREATE TABLE ,CREATE VIEW TO nom_utilisateur ;

<!-- Slide number: 5 -->

#

2- Assigner des privilèges objet à un utilisateur : GRANT

GRANT object_privilege [ (column i, columnj ,… )] | ALL PRIVILIGES

ON schema.object

TO user | role |PUBLIC

WITH GRANT OPTION

NB : - WITH GRANT OPTION ne s’applique qu’à un role ou public.PAS pour role

  • Un utilisateur munis des droits DBA ne pourra pas accorder de privilèges sur un objet qui ne lui appartient pas

Publicité

Exemple :

GRANT SELECT ,INSERT ,UPDATE ,DELETE ON SCOTT.EMP TO nom_utilisateur ;

GRANT UPDATE ( JOB, MGR ) ON SCOTT.EMP TO nom_utilisateur ;

(L'utilisateur peut modifier la table SCOTT.EMP mais uniquement les colonnes JOB et MGR)

NB : si on veut autoriser update et delete , ON DOIT attribuer select aussi.

<!-- Slide number: 6 -->

#

3- Retirer des privilèges objet à un utilisateur : REVOKE

Syntaxe :

REVOKE privileges ON object FROM user;

Exemples :

REVOKE DELETE ON suppliers FROM anderson;

REVOKE ALL ON suppliers FROM anderson;

REVOKE ALL ON suppliers FROM public;

<!-- Slide number: 7 -->

#

Principes généraux appliqués aux privilèges:

Un utilisateur possede automatiquement tout les privilges sur un objet qui lui appartient

Un utilisateur ne peut pas donner plus de privilèges qu’il en a recu.

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 privilège

Conclusion : lorsque la liste des privilèges est importante, cette manière de procéder

s'avère rapidement fastidieuse et répétitive  d’où l’importance des rôles:

(exemple : deux employés travaillant dans le même département.

<!-- Slide number: 8 -->

#

Créer des rôles et leur assigner des privilèges :

CREATE ROLE role

IDENTIFIED BY password

Exemple:

CREATE ROLE comptabilite ;

GRANT SELECT, INSERT, UPDATE, DELETE ON CPT.FACTURE TO comptabilite ;

GRANT SELECT, INSERT, UPDATE, DELETE ON CPT.LIG_FAC TO comptabilite ;

GRANT SELECT, INSERT, UPDATE, DELETE ON CPT.JOURNAL TO comptabilite ;

GRANT comptabilite TO nom_utilisateur ;

<!-- Slide number: 9 -->

#

ALTER ROLE: modifier un role

exemples :

ALTER ROLE warehouse_user NOT IDENTIFIED;

ALTER ROLE dw_manager IDENTIFIED BY data;

SET ROLE : activer /désactiver un role

exemples:

Publicité

SET ROLE NONE;

SET ROLE ALL EXCEPT dw_manager;

SET ROLE ALL;

SET ROLE dw_manager IDENTIFIED BY warehouse;

<!-- Slide number: 10 -->

#

Trois roles existent en standard :

CONNECT

RESSOURCE

DBA

figure : les privilèges systèmes assigné à CONNECT

L'option ADMIN OPTION positionnée à NO indique que ces privilèges ne peuvent pas être assignés à un autre utilisateur ou rôle

La liste des privilèges assignés au rôle DBA est beaucoup plus longue

D'une façon générale, il est fortement déconseillé d'utiliser ces rôles standards car ils accordent trop de droits aux utilisateurs

![](Picture2.jpg)

<!-- Slide number: 11 -->

#

La liste des rôles définis est visible depuis la vue DBA_ROLES :

La liste des privilèges système assignés à un rôle s'obtient en interrogeant les vues DBA_SYS_PRIVS et USER_SYS_PRIVS

![](Picture2.jpg)

![](Picture3.jpg)

<!-- Slide number: 12 -->

#

La liste des rôles assignés à un utilisateur s'obtient via les vues DBA_ROLE_PRIVS et USER_ROLE_PRIVS

La liste des privilèges objet assignés à un utilisateur s'obtient en interrogeant les vues DBA_TAB_PRIVS, ALL_TAB_PRIVS et USER_TAB_PRIVS

![](Picture2.jpg)

![](Picture3.jpg)

<!-- Slide number: 13 -->

#

La liste des privilèges objet sur les colonnes de tables assignés à un utilisateur s'obtient en interrogeant les vues : DBA_COL_PRIVS, ALL_COL_PRIVS et USER_COL_PRIVS

La liste des rôles assignés à l'utilisateur au cours de sa session est visible via la vue SESSION_ROLES

La liste des privilèges assignés à l'utilisateur au cours de sa session est visible via la vue SESSION_PRIVS

![](Picture2.jpg)

![](Picture3.jpg)

<!-- Slide number: 14 -->

#

Modifier un role : ALTER ROLE

Activer / désactiver un role pour un utilisateur : ALTER USER …….

Activer un role qui ne fait pas partis de cex par défaut : SET ROLE …..

Suppression d’un role : DROP ROLE nom_role ;

Retirer des privilèges système d’un utilisateur ou d’un role: REVOKE

Retirer des privilèges objet d’un utilisateur ou d’un role: REVOKE

NB :

Publicité

  • Pour pouvoir supprimer un privilège, il faut en avoir reçu l'autorisation avec l'option ADMIN OPTION
  • L'utilisteur disposant du rôle DBA ne peut pas retirer de privilèges qu'il n'a pas accordé

<!-- Slide number: 15 -->

#

![](Picture2.jpg)

Liste des prileges objets :

<!-- Slide number: 16 -->

Creation d’un utilisateur

Create user

Syntaxe:

create user nom_utilisateur

IDENTIFIED BY password | EXTERNALLY|GLOBALLY

DEFAULT TABLESPACE nom_tablespace

TEMPORARY TABLESPACE nom_tablespace

QUOTA taille| UNLIMITED ON nom_tablespace

ACCOUNT LOCK|UNLOCK

ALTER USER

DROP USER

Exemple:

Drop user scott ;

Ou

Drop user scott cascade ;

NB : CASCADE : supprimer un utilisateur et tous les objets de son schéma

Deux vues importantes: DBA_USERS et DBA_TS_QUOTAS

<!-- Slide number: 17 -->

Les profils

Définition:

un profil est un ensemble de limitations système

Une fois le profil assigné, l’utilisateur ne pourra plus dépassé ces limitations

Vous devez avoir le privilège CREATE PROFILE

Deux types de limitations :

limitations liées au mot de passe

Exemples :

FAILED_LOGIN_ATTEMPTS (numérique)

PASSWORD_LOCK_TIME (en jours)

PASSWORD_LIFE_TIME ( en jours)

………

NB : 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.

limitations liées aux ressources système

Exemples :

SESSIONS_PER_USER (numérique)

CPU_PER_SESSION ( en centièmes de seonde)

CONNECT_TIME (en minutes)

PRIVATE_SGA (la taille en kB ou MB que peut utiliser une session)

Publicité

……….

<!-- Slide number: 18 -->

#

Pour mettre en place un profil, trois étapes:

Etablir les limitations de mot de passe et les limitations système.

Créer le profil

Attribuer le profil aux utilisateurs qui devront être limités

Exemple

CREATE PROFILE app_user

LIMIT

SESSIONS_PER_USER UNLIMITED

CPU_PER_SESSION UNLIMITED

CONNECT_TIME 45

LOGICAL_READS_PER_SESSION 1000

PRIVATE_SGA 15K ;

NB : Par défaut un utilisateur se voit assigner le profil DEFAULT lors de sa création. Si vous souhaitez lui assigner un nouveau profil cela sera possible soit lors de la création soit avec la commande ALTER USER

Exemple :

ALTER USER scott PROFILE app_user;

<!-- Slide number: 19 -->

#

Modification d’un profil :

NB : - le privilege ALTER PROFILE pour modifier les ressources systèmes

  • les privilèges ALTER PROFILE et ALTER USER pour les reesources liées au mots de

passes

ALTER PROFILE app_user LIMIT

FAILED_LOGIN_ATTEMPTS 5

PASSWORD_LOCK_TIME 1;

Suppression d’un profil :

NB: le privilège DROP PROFILE

DROP PROFILE app_user;

ou

DROP PROFILE app_user CASCADE;

<!-- Slide number: 20 -->

#

Pour MOI*:

Alter user ali quota unlimited on users;

Alter user ali quota 100M on users;

Grant unlimited tablespace to ali;

Administration BD

Database Management and Security · notes

Voir tous les documents en gestion et économie

<!-- Slide number: 1 -->

Administration BD

Gestion des utilisateur, privilèges, rôles et profils

<!-- Slide number: 2 -->

#

Rôles et privilèges sont définis pour sécuriser l'accès aux données de la base

Un role est un regroupement de privilège, une fois crée il peut etre assigné à un role ou à un autre utilisateur.

<!-- Slide number: 3 -->

#

Gestion des privilèges

1- Introduction

Les privilèges sont de deux types :

  • Les privileges de niveau système (a peu prs 127 privilège)

permettent la création, modification, suppression, exécution de groupes d’objets.

exemple : create table, create vue, create sequence……

Les privilèges de niveau objet:

permettent des manipulations sur des objets spécifiques

exemple : les privilèges select , update , delete sur la table HR.employees.

<!-- Slide number: 4 -->

#

2- Assigner des privilèges système à un utilisateur : GRANT

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é.

Il ne peut même pas se connecter à la base !

GRANT syste_privilege | role | ALL PRIVILIGIES

TO user | role | PUBLIC

IDENTIFIED BY password

WITH ADMIN OPTION

N.B : ALL PRIVILIGES est un option dangereuse.

Exemple :

GRANT CREATE SESSION TO nom_utilisateur ;

GRANT CREATE TABLE TO nom_utilisateur ;

GRANT CREATE VIEW TO nom_utilisateur ;

Ou

GRANT CREATE SESSION ,CREATE TABLE ,CREATE VIEW TO nom_utilisateur ;

<!-- Slide number: 5 -->

#

2- Assigner des privilèges objet à un utilisateur : GRANT

GRANT object_privilege [ (column i, columnj ,… )] | ALL PRIVILIGES

ON schema.object

TO user | role |PUBLIC

WITH GRANT OPTION

NB : - WITH GRANT OPTION ne s’applique qu’à un role ou public.PAS pour role

  • Un utilisateur munis des droits DBA ne pourra pas accorder de privilèges sur un objet qui ne lui appartient pas

Publicité

Exemple :

GRANT SELECT ,INSERT ,UPDATE ,DELETE ON SCOTT.EMP TO nom_utilisateur ;

GRANT UPDATE ( JOB, MGR ) ON SCOTT.EMP TO nom_utilisateur ;

(L'utilisateur peut modifier la table SCOTT.EMP mais uniquement les colonnes JOB et MGR)

NB : si on veut autoriser update et delete , ON DOIT attribuer select aussi.

<!-- Slide number: 6 -->

#

3- Retirer des privilèges objet à un utilisateur : REVOKE

Syntaxe :

REVOKE privileges ON object FROM user;

Exemples :

REVOKE DELETE ON suppliers FROM anderson;

REVOKE ALL ON suppliers FROM anderson;

REVOKE ALL ON suppliers FROM public;

<!-- Slide number: 7 -->

#

Principes généraux appliqués aux privilèges:

Un utilisateur possede automatiquement tout les privilges sur un objet qui lui appartient

Un utilisateur ne peut pas donner plus de privilèges qu’il en a recu.

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 privilège

Conclusion : lorsque la liste des privilèges est importante, cette manière de procéder

s'avère rapidement fastidieuse et répétitive  d’où l’importance des rôles:

(exemple : deux employés travaillant dans le même département.

<!-- Slide number: 8 -->

#

Créer des rôles et leur assigner des privilèges :

CREATE ROLE role

IDENTIFIED BY password

Exemple:

CREATE ROLE comptabilite ;

GRANT SELECT, INSERT, UPDATE, DELETE ON CPT.FACTURE TO comptabilite ;

GRANT SELECT, INSERT, UPDATE, DELETE ON CPT.LIG_FAC TO comptabilite ;

GRANT SELECT, INSERT, UPDATE, DELETE ON CPT.JOURNAL TO comptabilite ;

GRANT comptabilite TO nom_utilisateur ;

<!-- Slide number: 9 -->

#

ALTER ROLE: modifier un role

exemples :

ALTER ROLE warehouse_user NOT IDENTIFIED;

ALTER ROLE dw_manager IDENTIFIED BY data;

SET ROLE : activer /désactiver un role

exemples:

Publicité

SET ROLE NONE;

SET ROLE ALL EXCEPT dw_manager;

SET ROLE ALL;

SET ROLE dw_manager IDENTIFIED BY warehouse;

<!-- Slide number: 10 -->

#

Trois roles existent en standard :

CONNECT

RESSOURCE

DBA

figure : les privilèges systèmes assigné à CONNECT

L'option ADMIN OPTION positionnée à NO indique que ces privilèges ne peuvent pas être assignés à un autre utilisateur ou rôle

La liste des privilèges assignés au rôle DBA est beaucoup plus longue

D'une façon générale, il est fortement déconseillé d'utiliser ces rôles standards car ils accordent trop de droits aux utilisateurs

![](Picture2.jpg)

<!-- Slide number: 11 -->

#

La liste des rôles définis est visible depuis la vue DBA_ROLES :

La liste des privilèges système assignés à un rôle s'obtient en interrogeant les vues DBA_SYS_PRIVS et USER_SYS_PRIVS

![](Picture2.jpg)

![](Picture3.jpg)

<!-- Slide number: 12 -->

#

La liste des rôles assignés à un utilisateur s'obtient via les vues DBA_ROLE_PRIVS et USER_ROLE_PRIVS

La liste des privilèges objet assignés à un utilisateur s'obtient en interrogeant les vues DBA_TAB_PRIVS, ALL_TAB_PRIVS et USER_TAB_PRIVS

![](Picture2.jpg)

![](Picture3.jpg)

<!-- Slide number: 13 -->

#

La liste des privilèges objet sur les colonnes de tables assignés à un utilisateur s'obtient en interrogeant les vues : DBA_COL_PRIVS, ALL_COL_PRIVS et USER_COL_PRIVS

La liste des rôles assignés à l'utilisateur au cours de sa session est visible via la vue SESSION_ROLES

La liste des privilèges assignés à l'utilisateur au cours de sa session est visible via la vue SESSION_PRIVS

![](Picture2.jpg)

![](Picture3.jpg)

<!-- Slide number: 14 -->

#

Modifier un role : ALTER ROLE

Activer / désactiver un role pour un utilisateur : ALTER USER …….

Activer un role qui ne fait pas partis de cex par défaut : SET ROLE …..

Suppression d’un role : DROP ROLE nom_role ;

Retirer des privilèges système d’un utilisateur ou d’un role: REVOKE

Retirer des privilèges objet d’un utilisateur ou d’un role: REVOKE

NB :

Publicité

  • Pour pouvoir supprimer un privilège, il faut en avoir reçu l'autorisation avec l'option ADMIN OPTION
  • L'utilisteur disposant du rôle DBA ne peut pas retirer de privilèges qu'il n'a pas accordé

<!-- Slide number: 15 -->

#

![](Picture2.jpg)

Liste des prileges objets :

<!-- Slide number: 16 -->

Creation d’un utilisateur

Create user

Syntaxe:

create user nom_utilisateur

IDENTIFIED BY password | EXTERNALLY|GLOBALLY

DEFAULT TABLESPACE nom_tablespace

TEMPORARY TABLESPACE nom_tablespace

QUOTA taille| UNLIMITED ON nom_tablespace

ACCOUNT LOCK|UNLOCK

ALTER USER

DROP USER

Exemple:

Drop user scott ;

Ou

Drop user scott cascade ;

NB : CASCADE : supprimer un utilisateur et tous les objets de son schéma

Deux vues importantes: DBA_USERS et DBA_TS_QUOTAS

<!-- Slide number: 17 -->

Les profils

Définition:

un profil est un ensemble de limitations système

Une fois le profil assigné, l’utilisateur ne pourra plus dépassé ces limitations

Vous devez avoir le privilège CREATE PROFILE

Deux types de limitations :

limitations liées au mot de passe

Exemples :

FAILED_LOGIN_ATTEMPTS (numérique)

PASSWORD_LOCK_TIME (en jours)

PASSWORD_LIFE_TIME ( en jours)

………

NB : 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.

limitations liées aux ressources système

Exemples :

SESSIONS_PER_USER (numérique)

CPU_PER_SESSION ( en centièmes de seonde)

CONNECT_TIME (en minutes)

PRIVATE_SGA (la taille en kB ou MB que peut utiliser une session)

Publicité

……….

<!-- Slide number: 18 -->

#

Pour mettre en place un profil, trois étapes:

Etablir les limitations de mot de passe et les limitations système.

Créer le profil

Attribuer le profil aux utilisateurs qui devront être limités

Exemple

CREATE PROFILE app_user

LIMIT

SESSIONS_PER_USER UNLIMITED

CPU_PER_SESSION UNLIMITED

CONNECT_TIME 45

LOGICAL_READS_PER_SESSION 1000

PRIVATE_SGA 15K ;

NB : Par défaut un utilisateur se voit assigner le profil DEFAULT lors de sa création. Si vous souhaitez lui assigner un nouveau profil cela sera possible soit lors de la création soit avec la commande ALTER USER

Exemple :

ALTER USER scott PROFILE app_user;

<!-- Slide number: 19 -->

#

Modification d’un profil :

NB : - le privilege ALTER PROFILE pour modifier les ressources systèmes

  • les privilèges ALTER PROFILE et ALTER USER pour les reesources liées au mots de

passes

ALTER PROFILE app_user LIMIT

FAILED_LOGIN_ATTEMPTS 5

PASSWORD_LOCK_TIME 1;

Suppression d’un profil :

NB: le privilège DROP PROFILE

DROP PROFILE app_user;

ou

DROP PROFILE app_user CASCADE;

<!-- Slide number: 20 -->

#

Pour MOI*:

Alter user ali quota unlimited on users;

Alter user ali quota 100M on users;

Grant unlimited tablespace to ali;