Support de cours Administration BD. Emna Bouazizi ISIM De Monastir Année Univ. 2011/2012

Documents pareils
Gestion des utilisateurs et de leurs droits

CHAPITRE 4 POLITIQUES DE CONTRÔLES DES ACCÈS SOUS ORACLE ADMINISTRATION ET TUNING DE BASES DE DONNÉES 10/05/2015 RESPONSABLE DR K.

Bases de données et sites WEB

420-PK6-SL Banques de données Avancées. UTILISATEURS (suite)

TP Administration Oracle

Partie II Cours 3 (suite) : Sécurité de bases de données

Bases de Données relationnelles et leurs systèmes de Gestion

ORACLE 10G DISTRIBUTION ET REPLICATION. Distribution de données avec Oracle. G. Mopolo-Moké prof. Associé UNSA 2009/ 2010

COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2

Partie 0 : Gestion des tablespace et des utilisateurs... 3

SGBDR. Systèmes de Gestion de Bases de Données (Relationnelles)

ECR_DESCRIPTION CHAR(80), ECR_MONTANT NUMBER(10,2) NOT NULL, ECR_SENS CHAR(1) NOT NULL) ;

Gestion des utilisateurs, des groupes et des rôles dans SQL Server 2008

Langage SQL (1) 4 septembre IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes

ISC Système d Information Architecture et Administration d un SGBD Compléments SQL

Olivier Mondet

420-PK6-SL Banques de données Avancées UTILISATEURS

Administration des bases de données. Jean-Yves Antoine

Cours Bases de données 2ème année IUT

Programme détaillé. Administrateur de Base de Données Oracle - SQLServer - MySQL. Objectifs de la formation. Les métiers

Administration des Bases de Données Oracle

Techniques de stockage. Techniques de stockage, P. Rigaux p.1/43

Auto-évaluation Oracle: cours de base

Cours: Administration d'une Base de Données

Notes de cours : bases de données distribuées et repliquées

Le Langage De Description De Données(LDD)

Cours Bases de données 2ème année IUT

COMPOSANTS DE L ARCHITECTURE D UN SGBD. Chapitre 1

Les transactions 1/46. I même en cas de panne logicielle ou matérielle. I Concept de transaction. I Gestion de la concurrence : les solutions

TP11 - Administration/Tuning

Cours Bases de données 2ème année IUT

Pour les débutants. langage de définition des données

Bases de données et sites WEB Licence d informatique LI345

CYCLE CERTIFIANT ADMINISTRATEUR BASES DE DONNÉES

MySQL - Réplication. Fichiers de relais et de statut de la réplication. Mise en place de la réplication

Compétences Business Objects

Master Exploration Informatique des données DataWareHouse

Bases de Données Avancées

Synchronisation Mysql (Replication)

Bases de données avancées

1. Qu'est-ce que SQL? La maintenance des bases de données Les manipulations des bases de données... 5

Administration des bases de données

Mise en oeuvre TSM 6.1

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL

TP Bases de données réparties

Le langage SQL pour Oracle - partie 1 : SQL comme LDD

CHAPITRE 1 ARCHITECTURE

Cours 3. Développement d une application BD. DBA - Maîtrise ASR - Université Evry

Gestion des droits d accès. Quelques exemples de vulnérabilité

//////////////////////////////////////////////////////////////////// Administration bases de données

I. MySQL : Serveur et SGBD

Comment Accéder à des Bases de Données MySQL avec Windows lorqu'elles sont sur un Serveur Linux

I/ Présentation. On considère une BD CIRQUE dont le schema conceptuel : PERSONNEL _CIRQUE (NOM, ROLE) ;

Intégrité des données

FILE MANAGEMENT. TABLESPACES TEMPORAIRES Temporaire par défaut autre que system

CATALOGUE FORMATIONS DOMAINE Bases de données

Java DataBaseConnectivity

Configurer la supervision pour une base MS SQL Server Viadéis Services

Bases de Données Réparties Concepts et Techniques. Matthieu Exbrayat ULP Strasbourg - Décembre 2007

Bases de données Oracle Virtual Private Database (VPD) pour la gestion des utilisateurs d applications

Fascicule des Travaux Pratiques Oracle

Présentation du module Base de données spatio-temporelles

1. Qu'est qu'un tablespace?

Langage SQL : créer et interroger une base

TP3 : Creation de tables 1 seance

Base de données II Module 3b

SQL. Oracle. pour. 4 e édition. Christian Soutou Avec la participation d Olivier Teste

Le langage SQL (première partie) c Olivier Caron

TP Contraintes - Triggers

Notion de base de données

Le Langage SQL version Oracle

A.E.C. GESTION DES APPLICATIONS TECHNOLOGIE DE L'INFORMATION LEA.BW

Description de SQL SERVER. historique

Introduction aux SGBDR

14/04/2014. un ensemble d'informations sur un sujet : exhaustif, non redondant, structuré, persistant. Gaëlle PERRIN SID2 Grenoble.

Les bases de l optimisation SQL avec DB2 for i

Département Génie Informatique

SQL Historique

Introduction à JDBC. Accès aux bases de données en Java

Plan Général Prévisionnel (1/2) (non contractuel) Internet et Outils L1/IO S2-IO2 Bases de données: Jointures, Transactions

Les bases de données

Les Triggers SQL. Didier DONSEZ. Université de Valenciennes Institut des Sciences et Techniques de Valenciennes

PPE GESTION PARC INFORMATIQUE

Module Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS

Serveur Linux : FTP. Mise en place d un service FTP sous Linux. Bouron Dimitri 20/04/2014

Devoir Data WareHouse

MySQL / SQL EXEMPLES

Architecture de la plateforme SBC

Performances. Gestion des serveurs (2/2) Clustering. Grid Computing

1. Base de données SQLite

Installation des moteurs SQL Pour Micro-SESAME

PREPARATION AU PTI SGBD

WDpStats Procédure d installation

Mysql. Les requêtes préparées Prepared statements

Installation d'un serveur FTP géré par une base de données MySQL

Plan. Bases de Données. Sources des transparents. Bases de SQL. L3 Info. Chapitre 4 : SQL LDD Le langage de manipulation de données : LMD

Création et Gestion des tables

Transcription:

Support de cours Administration BD Emna Bouazizi emna.bouazizi@gmail.com ISIM De Monastir Année Univ. 2011/2012

Chapitre 2 : Administrer la sécurité utilisateur : Gestion des utilisateurs et de leurs droits d accès 2

Introduction Un SGBD oracle est un système multiutilisateur complexe Il doit protéger les données de l utilisateur Il doit permettre un partage contrôlé des données utilisateurs Accès à la base BD Oracle Utilisateur Droits Restrictions 3

Objectifs Il s agit de répartir et de sélectionner les droits des utilisateurs de la BD afin d en assurer la protection : Gestion des accès à la BD Gestion des accès aux données de la base Limitation des ressources accessibles aux utilisateurs Attribution des droits d accès par défaut 4

Utilisateur Oracle Nom Utilisateur USER Mot de passe Ensembles de privilèges Droits des utilisateurs Profil Privilège Privilège Système Privilège Objet Le droit d exécuter un ordre SQL (Ex : créer une table) Le droit d accéder à un objet d un autre utilisateur (Ex : Mettre à jour les données De la table CLIENT) 5

Organisation des privilèges Privilège Utilisateur Rôle Utilisateur 6

Organisation des Rôles Privilège 1 Privilège 2 Rôle 1 Utilisateur 1 Privilège 3 Privilège 4 Rôle 2 Utilisateur 2 Privilège 5 Utilisateur 3 7

Exemple : Rôles & Privilèges RÔLE Utilisateur 1 Utilisateur 2 admin RÔLE gestion ORDRE insert RÔLE utilise ORDRE select ORDRE update PROCEDURE Augmente TABLE 8

Rôle : Caractéristiques Définition Est un regroupement nommé de privilèges (système ou objet) qui peut être attribué à un utilisateur ou un autre rôle Attribution Un rôle peut être attribué à un rôle Un utilisateur peut avoir plusieurs rôles Mise en œuvre s effectue en trois étapes Création du rôle Attribution des privilèges Attribution de rôle au utilisateurs 9

Rôles Standards Il existe trois rôles par défaut dans Oracle : CONNECT : Pour les utilisateurs occasionnels qui n ont normalement pas besoin de créer des tables (même s ils pourront le faire). Ce rôle autorise simplement d utiliser Oracle : il permet de créer des tables, des vues, etc. RESOURCE : Pour les utilisateurs réguliers. Accorde des droits supplémentaires pour la création de tables, de séquences, de procédures, de déclencheurs, d index, etc. DBA : Regroupe tous les privilèges de niveau système et la possibilité d accorder n importe quel privilège à un autre utilisateur. 10

Profil utilisateur Objectif : Contrôler l activité de l utilisateur en limitant les ressources auxquels il a accès Niveau SESSION Niveau APPEL (exécution d un ordre SQL) Nombre de session par utilisateur Durée de connexion Durée sans occupation autorisée Nombre maximal d octets d espace privé dans SGA Temps CPU Nombre maximal de blocs lus Remarque : La notion de profil sert aussi à définir les paramètres de gestion du mot de passe 11

Gestion des utilisateurs Création d un utilisateur Modification d un utilisateur Suppression d un utilisateur Trouver les informations sur les utilisateurs 12

Création d un utilisateur : Syntaxe (1) CREATE USER nom_utilisateur IDENTIFIED { BY mdp EXTERNALLY } [DEFAULT TABLESPACE nom_tablespace] [TEMPORARY TABLESPACE nom_tablespace] [QUOTA { valeur [K M] UNLIMITED } ON nom_tablespace] [PROFILE nom_profile] [PASSWORD EXPIRE ] [ACCOUNT {LOCK UNLOCK}]; 13

Création d un utilisateur : Syntaxe (2) CREATE USER nom_utilisateur IDENTIFIED { BY mdp EXTERNALLY } [DEFAULT TABLESPACE nom_tablespace] [TEMPORARY TABLESPACE nom_tablespace] [QUOTA { valeur [K M] UNLIMITED } ON nom_tablespace] [PROFILE nom_profile] [PASSWORD EXPIRE ] [ACCOUNT {LOCK UNLOCK}]; Permet de créer un utilisateur qui a le même nom et le même mot de passe qu un Utilisateur défini au niveau SE Évite la saisie du mot de passe lors des connexions à Oracle 14

Création d un utilisateur : Syntaxe (3) CREATE USER nom_utilisateur IDENTIFIED { BY mdp EXTERNALLY } [DEFAULT TABLESPACE nom_tablespace] [TEMPORARY TABLESPACE nom_tablespace] [QUOTA { valeur [K M] UNLIMITED } ON nom_tablespace] [PROFILE nom_profile] [PASSWORD EXPIRE ] [ACCOUNT {LOCK UNLOCK}]; Définit le tablespace qui sera utilisé par défaut lors de la création d une table par L utilisateur (ordre CREATE TABLE) Si cette clause n est pas utilisée, les tables sont créées dans le tablespace SYSTEM 15

Création d un utilisateur : Syntaxe (4) CREATE USER nom_utilisateur IDENTIFIED { BY mdp EXTERNALLY } [DEFAULT TABLESPACE nom_tablespace] [TEMPORARY TABLESPACE nom_tablespace] [QUOTA { valeur [K M] UNLIMITED } ON nom_tablespace] [PROFILE nom_profile] [PASSWORD EXPIRE ] [ACCOUNT {LOCK UNLOCK}]; Définit le tablespace qui sera utilisé par défaut lorsque le système aura besoin d espace de travail Si cette clause n est pas utilisée, les zones de travail temporaires sont implantées dans le tablespace SYSTEM 16

Création d un utilisateur : Syntaxe (5) CREATE USER nom_utilisateur IDENTIFIED { BY mdp EXTERNALLY } [DEFAULT TABLESPACE nom_tablespace] [TEMPORARY TABLESPACE nom_tablespace] [QUOTA { valeur [K M] UNLIMITED } ON nom_tablespace] [PROFILE nom_profile] [PASSWORD EXPIRE ] [ACCOUNT {LOCK UNLOCK}]; Permet de limiter (valeur en KO ou MO) ou non (UNLIMITED) l espace qui pourra être alloué pour les tables de l utilisateur dans le tablespace temporaire et/ou dans le tablespace par défaut 17

Création d un utilisateur : Syntaxe (6) CREATE USER nom_utilisateur IDENTIFIED { BY mdp EXTERNALLY } [DEFAULT TABLESPACE nom_tablespace] [TEMPORARY TABLESPACE nom_tablespace] [QUOTA { valeur [K M] UNLIMITED } ON nom_tablespace] [PROFILE nom_profile] [PASSWORD EXPIRE ] [ACCOUNT {LOCK UNLOCK}]; Permet d effectuer un profil particulier à l utilisateur Si cette clause n est pas utilisée, le profil DEFAULT est attribué 18

Création d un utilisateur : Syntaxe (7) CREATE USER nom_utilisateur IDENTIFIED { BY mdp EXTERNALLY } [DEFAULT TABLESPACE nom_tablespace] [TEMPORARY TABLESPACE nom_tablespace] [QUOTA { valeur [K M] UNLIMITED } ON nom_tablespace] [PROFILE nom_profile] [PASSWORD EXPIRE ] [ACCOUNT {LOCK UNLOCK}]; Demande le changement du mot de passe 19

Création d un utilisateur : Syntaxe (8) CREATE USER nom_utilisateur IDENTIFIED { BY mdp EXTERNALLY } [DEFAULT TABLESPACE nom_tablespace] [TEMPORARY TABLESPACE nom_tablespace] [QUOTA { valeur [K M] UNLIMITED } ON nom_tablespace] [PROFILE nom_profile] [PASSWORD EXPIRE ] [ACCOUNT {LOCK UNLOCK}]; LOCK : le compte est bloqué UNLOCK : le compte est actif 20

Modification d un utilisateur : Syntaxe (1) ALTER USER nom_utilisateur IDENTIFIED { BY mdp EXTERNALLY } [DEFAULT TABLESPACE nom_tablespace] [TEMPORARY TABLESPACE nom_tablespace] [QUOTA { valeur [K M] UNLIMITED } ON nom_tablespace] [PROFILE nom_profile] [DEFAULT ROLE {rôle [, rôle, ] ALL ALL EXCEPT rôle [, rôle, ] NONE}] [PASSWORD EXPIRE ] [ACCOUNT {LOCK UNLOCK}]; Tous les rôles attribués à l utilisateur sont activés par défaut 21

Modification d un utilisateur : Syntaxe (2) ALTER USER nom_utilisateur IDENTIFIED { BY mdp EXTERNALLY } [DEFAULT TABLESPACE nom_tablespace] [TEMPORARY TABLESPACE nom_tablespace] [QUOTA { valeur [K M] UNLIMITED } ON nom_tablespace] [PROFILE nom_profile] [DEFAULT ROLE {rôle [, rôle, ] ALL ALL EXCEPT rôle [, rôle, ] NONE}] [PASSWORD EXPIRE ] [ACCOUNT {LOCK UNLOCK}]; Tous les rôles attribués à l utilisateur sont activés par défaut EXCEPT permet d enlever certains 22

Modification d un utilisateur : Syntaxe (3) ALTER USER nom_utilisateur IDENTIFIED { BY mdp EXTERNALLY } [DEFAULT TABLESPACE nom_tablespace] [TEMPORARY TABLESPACE nom_tablespace] [QUOTA { valeur [K M] UNLIMITED } ON nom_tablespace] [PROFILE nom_profile] [DEFAULT ROLE {rôle [, rôle, ] ALL ALL EXCEPT rôle [, rôle, ] NONE}] [PASSWORD EXPIRE ] [ACCOUNT {LOCK UNLOCK}]; Aucun des rôles attribués à l utilisateur n est activé par défaut 23

Suppression d un utilisateur : Syntaxe DROP USER nom [CASCADE]; Si l utilisateur possède des objets, l option CASCADE doit être présente pour forcer la suppression préalable de objets Si l utilisateur possède des objets et l option CASCADE n est pas présente : Erreur Un utilisateur connecté ne peut pas être supprimé 24

Récapitulation Chaque compte utilisateur de base de données comporte : Un nom d utilisateur unique Une méthode d authentification Un tablespace par défaut Un tablespace temporaire Un profile utilisateur Un statut de verrouillage 25

Comptes prédéfinis : SYS et Le compte SYS : SYSTEM reçoit le rôle d'administrateur de base de données (DBA) dispose de tous les privilèges associés à ADMIN OPTION est requis pour les opérations de démarrage et d'arrêt, ainsi que pour certaines commandes de maintenance est le propriétaire du dictionnaire de données Le compte SYSTEM a le rôle d'administrateur de base de données (DBA). 26

Exemple : Création d un utilisateur CREATE USER _salim IDENTIFIED BY mypass1 DEFAULT TABLESPACE tbs_users TEMPORARY TABLESPACE tmp_users QUOTA 10M ON tbs_users QUOTA 5M ON tmp_user PROFILE app_user PASSWORD EXPIRE; 27

Exemple de modification d un utilisateur Modification de mdp ALTER USER _salim IDENTIFIED BY mypass2; Modification des quotas ALTER USER _salim QUOTA 15M ON tbs_user QUOTA 10M ON tmp_users; Modification des statuts Verrouillage ALTER USER _salim ACCOUNT LOCK; Activation ALTER USER _salim ACCOUNT UNLOCK; 28

Exemple de suppression d un utilisateur Suppression DROP USER _salim CASCADE; 29

Gestion des Rôles Création d un Rôle Modification d un Rôle Suppression d un Rôle Activation d un Rôle 30

Création d un Rôle : Syntaxe CREATE ROLE nom_rôle [IDENTIFIED { BY mdp EXTERNALLY} USING nom_package NOT IDENTIFIED]; Indique qu une identification externe est nécessaire pour activer le rôle Remarques : Avant de recevoir des privilèges, un rôle doit être créé Un rôle est créé sans caractéristiques. Il faut utiliser l ordre GRANT pour lui affecter des privilèges ou des rôles 31

Modification d un Rôle : Syntaxe ALTER ROLE nom_rôle [NOT IDENTIFIED] [IDENTIFIED BY mdp]; Remarque : La modification d un rôle ne concerne que son mot de passe 32

Suppression d un Rôle : Syntaxe DROP ROLE nom_rôle; Remarque : Le rôle est alors retiré de tous les utilisateurs et de tous les autres rôles auxquels il avait été effectué 33

Activation ou désactivation d un Rôle Un rôle attribué à un utilisateur est par défaut automatiquement activé lors de la connexion de l utilisateur Si l utilisateur est connecté au moment de l attribution du rôle, l activation immédiate n est pas automatique L utilisateur peut activer le rôle grâce à l ordre SQL : SET RÔLE L ordre ALTER USER permet de définir les rôles par défaut d un utilisateur 34

Activation ou désactivation d un Rôle : Syntaxe Remarques : SET ROLE {nom_rôle1 [IDENTIFIED BY mdp], nom_rôle2 [IDENTIFIED BY mdp], } ALL [ ALL EXCEPT rôle [, rôle] ] NONE; SET ROLE permet d activer ou de désactiver un ou plusieurs rôles préalablement affectés à l utilisateur par une commande GRANT pour la session courante Un rôle qui ne figure pas dans la liste est considéré comme désactivé 35

Gestion des privilèges Gestion des privilèges au niveau system Attribution des privilèges systèmes Suppression des privilèges systèmes Listes de quelques privilèges systèmes Gestion des privilèges au niveau objet Attribution des privilèges objets Suppression de privilèges Listes des privilèges objets 36

Privilège Système Est le droit d exécuter un ordre SQL Chaque ordre SQL a au moins un privilège système associé qui porte le même nom que l ordre SQL Exemple : l ordre CREATE TABLE possède un privilège système associé CREATE TABLE qui donne le droit de créer une table dans son propre schéma 37

Attribution d un privilège système : Syntaxe (1) GRANT {<privilège_système> <rôle>} [,{<privilège_système> <rôle>}, ] TO {<nom_utilisateur> <rôle> PUBLIC } [,{<nom_utilisateur> <rôle> PUBLIC, }] [WITH ADMIN OPTION] ; La commande GRANT permet d accorder n importe quel privilège système ou rôle à un utilisateur, à un rôle, ou au groupe d utilisateurs 38

Attribution d un privilège système : Syntaxe (2) GRANT {<privilège_système> <rôle>} [,{<privilège_système> <rôle>}, ] TO {<nom_utilisateur> <rôle> PUBLIC } [,{<nom_utilisateur> <rôle> PUBLIC, }] [WITH ADMIN OPTION] ; PUBLIC permet d affecter le privilège ou le rôle à tous les utilisateurs 39

Attribution d un privilège système : Syntaxe (3) GRANT {<privilège_système> <rôle>} [,{<privilège_système> <rôle>}, ] TO {<nom_utilisateur> <rôle> PUBLIC } [,{<nom_utilisateur> <rôle> PUBLIC, }] [WITH ADMIN OPTION] ; WITH ADMIN OPTION autorise celui qui a reçu le privilège ou le rôle à le transmettre à un autre utilisateur ou un autre rôle 40

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

Suppression d un privilège système : Syntaxe REVOKE { <privilège_système> <rôle> } [, { <privilège_système> <rôle> }] FROM { <utilisateur> <rôle> PUBLIC } [, { <utilisateur> <rôle> PUBLIC }] ; REVOKE permet d enlever enlever un privilège ou un rôle à un utilisateur ou un rôle 42

Liste de quelques privilèges systèmes(1) ALTER PROFILE ALTER SESSION ALTER TABLESPACE ALTER USER CREATE PROFILE CREATE ROLE CREATE SESSION CREATE TABLE CREATE TABLESPACE CREATE USER Modification des profils Modification d une session Modification de tablespaces Modification des caractéristiques d un utilisateur Création de profils Création de rôles Connexion à la base de données Création des tables Création de tablespaces Création d utilisateurs 43

Liste de quelques privilèges systèmes(2) CREATE VIEW DROP PROFILE DROP TABLESPACE DROP USER GRANT ANY PRIVILEGE GRANT ANY ROLE Création des vues Suppression de profils Suppression de tablespaces Suppression des utilisateurs Attribution de tous les privilèges systèmes Attribution de tous les rôles 44

Privilège Objet Est le droit d accéder à un objet d un autre utilisateur Par défaut, seul le propriétaire d un objet a le droit d y accéder Pour qu un autre utilisateur puisse accéder à l objet, le propriétaire de l objet doit lui donner un privilège objet 45

Attribution d un privilège objet : Syntaxe GRANT {privilège_objet [, ] ALL PRIVILEGES} ON [schéma.]objet TO {<nom_utilisateur> <rôle> PUBLIC } [,{<nom_utilisateur> <rôle> PUBLIC, }] [WITH ADMIN OPTION] ; Remarques : Un utilisateur (créateur) qui crée un objet a tous les droits sur celui-ci, les autres utilisateurs (sauf DBA) n ont aucun droit. Un objet peut être un nom de : Table, vue, procédure, fonction, package, etc. 46

Exemple GRANT SELECT,INSERT,UPDATE,DELETE ON SCOTT.EMP TO nom_utilisateur ; 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 47

Suppression d un privilège objet : Syntaxe REVOKE {privilège_objet [, ] ALL PRIVILEGES} ON [schéma.]objet FROM {<utilisateur> <rôle> PUBLIC } [,{<nom_utilisateur> <rôle> PUBLIC, }] ; 48

Liste des privilèges sur les objets SELECT [(col ; )] INSERT UPDATE [(col ; ) DELETE EXECUTE ALTER INDEX REFERENCES [(col ; )] READ ALL Droit de lecture Droit d insertion de lignes Droit de modification de lignes (éventuellement limité à certaines colonnes) Droit de suppression de lignes Droit d exécuter une procédure, une fonction ou un package Droit de modification de la description de l objet Droit de création d index Droit de faire référence à des contraintes définies sur un objet Droit d accès en consultation Tous les droits 49

Exemples illustratifs 50

Gestion des profiles Création d un profile Modification d un profile Suppression d un profile 51

Définitions Un profile est un ensemble nommé de limitations de ressources qui peut être attribué à un utilisateur Les ressources qui peuvent être limitées sont : Temps CPU par appel et/ou par session Nombre de lectures logique par appel et/ou par session Nombre de sessions ouvertes simultanément Temps d inactivité par session Durée totale de la session Les profiles gèrent également le statut des comptes et imposent des restrictions sur les mots de passe des utilisateurs (longueur, délai d'expiration, etc.) Chaque utilisateur se voit affecter un profile et ne peut appartenir qu'à un seul profile à la fois Si des utilisateurs sont connectés lorsque vous modifiez leur profile, le changement ne prend effet que lors de leur prochaine connexion. Un profil par défaut est fourni à l installation de la base de données. Initialement, toutes les valeurs par défauts sont UNLIMITED. Ce profil est automatiquement attribué à un utilisateur lors de sa création. 52

Création d un profile (1) CREATE PROFILE nom_profile LIMIT [SESSIONS_PER_USER {entier UNLIMITED DEFAULT}] [CPU_PER_SESSION {entier UNLIMITED DEFAULT}] [CPU_PER_CALL {entier UNLIMITED DEFAULT}] [CONNECT_TIME {entier UNLIMITED DEFAULT}] [IDL_TIME {entier UNLIMITED DEFAULT}] [LOGICAL_READS_PER_SESSION {entier UNLIMITED DEFAULT}] [LOGICAL_READS_PER_CALL {entier UNLIMITED DEFAULT}] [PRIVATE_SGA {entier [K M] UNLIMITED DEFAULT}] [FAILED_LOGIN_ATTEMPTS {entier UNLIMITED DEFAULT}] [PASSWORD_LIFE_TIME {entier UNLIMITED DEFAULT}] [PASSWORD_REUSE_TIME PASSWORD_REUSE_MAX {entier UNLIMITED DEFAULT}] [PASSWORD_LOCK_TIME {entier UNLIMITED DEFAULT}] [PASSWORD_GRACE_TIME {entier UNLIMITED DEFAULT}] [PASSWORD_VERIFY_FUNCTION {fonction NULL DEFAULT}] ; 53

Création d un profile (2) Paramètre de la création d un profil CREATE PROFILE nom_profile LIMIT [SESSIONS_PER_USER {entier UNLIMITED DEFAULT}] [CPU_PER_SESSION {entier UNLIMITED DEFAULT}] [CPU_PER_CALL {entier UNLIMITED DEFAULT}] [CONNECT_TIME {entier UNLIMITED DEFAULT}] [IDL_TIME {entier UNLIMITED DEFAULT}] [LOGICAL_READS_PER_SESSION {entier UNLIMITED DEFAULT}] [LOGICAL_READS_PER_CALL {entier UNLIMITED DEFAULT}] [PRIVATE_SGA {entier [K M] UNLIMITED DEFAULT}] [FAILED_LOGIN_ATTEMPTS {entier UNLIMITED DEFAULT}] [PASSWORD_LIFE_TIME {entier UNLIMITED DEFAULT}] [PASSWORD_REUSE_TIME PASSWORD_REUSE_MAX {entier UNLIMITED DEFAULT}] [PASSWORD_LOCK_TIME {entier UNLIMITED DEFAULT}] [PASSWORD_GRACE_TIME {entier UNLIMITED DEFAULT}] [PASSWORD_VERIFY_FUNCTION {fonction NULL DEFAULT}] ; Paramètre de gestion des mots de passe 54

Création d un profile (3) CREATE PROFILE nom_profile LIMIT [SESSIONS_PER_USER {entier UNLIMITED DEFAULT}] Limite le nombre de session actives simultanément pour un utilisateur 55

Création d un profile (4) CREATE PROFILE nom_profile LIMIT [SESSIONS_PER_USER {entier UNLIMITED DEFAULT}] [CPU_PER_SESSION {entier UNLIMITED DEFAULT}] Indique la durée CPU (d utilisation du processus) maximale autorisée pour la session active, (exprimée en centièmes de secondes) Les ressources CPU peuvent être limitées par session. Ex : Avec une limite CPU/Session de 1 000, une session qui utilise ce profile et qui consomme plus de 10 secondes de temps CPU (les limites de temps CPU étant exprimées en centièmes de seconde) reçoit une erreur et est déconnectée : ORA-02392: exceeded session limit on CPU usage, you are being logged off 56

Création d un profile (5) CREATE PROFILE nom_profile LIMIT [SESSIONS_PER_USER {entier UNLIMITED DEFAULT}] [CPU_PER_SESSION {entier UNLIMITED DEFAULT}] [CPU_PER_CALL {entier UNLIMITED DEFAULT}] Indique la durée CPU (d appel serveur) maximale autorisée pour la session active (exprimée en centièmes de secondes) Les ressources CPU peuvent être limitées par appel. Elle a le même effet que limitation du CPU par session, mais au lieu de limiter la session globale de l'utilisateur, elle empêche chaque commande de consommer trop de temps CPU. Si une limite CPU/Call est définie et que l'utilisateur la dépasse, la commande s'arrête et l'utilisateur reçoit un message d'erreur semblable à ce qui suit : ORA-02393: exceeded call limit on CPU usage 57

Création d un profile (6) CREATE PROFILE nom_profile LIMIT [SESSIONS_PER_USER {entier UNLIMITED DEFAULT}] [CPU_PER_SESSION {entier UNLIMITED DEFAULT}] [CPU_PER_CALL {entier UNLIMITED DEFAULT}] [CONNECT_TIME {entier UNLIMITED DEFAULT}] Indique la durée maximale de connexion autorisée pour la session active, (exprimée en minutes) 58

Création d un profile (7) CREATE PROFILE nom_profile LIMIT [SESSIONS_PER_USER {entier UNLIMITED DEFAULT}] [CPU_PER_SESSION {entier UNLIMITED DEFAULT}] [CPU_PER_CALL {entier UNLIMITED DEFAULT}] [CONNECT_TIME {entier UNLIMITED DEFAULT}] [IDL_TIME {entier UNLIMITED DEFAULT}] Exprime la durée maximale d inactivité autorisée avant fermeture automatique de la session (exprimée en minutes) 59

Création d un profile (8) CREATE PROFILE nom_profile LIMIT [SESSIONS_PER_USER {entier UNLIMITED DEFAULT}] [CPU_PER_SESSION {entier UNLIMITED DEFAULT}] [CPU_PER_CALL {entier UNLIMITED DEFAULT}] [CONNECT_TIME {entier UNLIMITED DEFAULT}] [IDL_TIME {entier UNLIMITED DEFAULT}] [LOGICAL_READS_PER_SESSION {entier UNLIMITED DEFAULT}] Indique le nombre maximal de blocs qui peuvent être transférés durant la session 60

Création d un profile (9) CREATE PROFILE nom_profile LIMIT [SESSIONS_PER_USER {entier UNLIMITED DEFAULT}] [CPU_PER_SESSION {entier UNLIMITED DEFAULT}] [CPU_PER_CALL {entier UNLIMITED DEFAULT}] [CONNECT_TIME {entier UNLIMITED DEFAULT}] [IDL_TIME {entier UNLIMITED DEFAULT}] [LOGICAL_READS_PER_SESSION {entier UNLIMITED DEFAULT}] [LOGICAL_READS_PER_CALL {entier UNLIMITED DEFAULT}] Indique le nombre maximal de blocs qui peuvent être transférés lors d un appel serveur 61

Création d un profile (10) CREATE PROFILE nom_profile LIMIT [SESSIONS_PER_USER {entier UNLIMITED DEFAULT}] [CPU_PER_SESSION {entier UNLIMITED DEFAULT}] [CPU_PER_CALL {entier UNLIMITED DEFAULT}] [CONNECT_TIME {entier UNLIMITED DEFAULT}] [IDL_TIME {entier UNLIMITED DEFAULT}] [LOGICAL_READS_PER_SESSION {entier UNLIMITED DEFAULT}] [LOGICAL_READS_PER_CALL {entier UNLIMITED DEFAULT}] [PRIVATE_SGA {entier [K M] UNLIMITED DEFAULT}] Permet de gérer la taille allouée à la SGA privée (exprimée en KO ou MO) (utilisée uniquement avec l architecture serveurs partagés) 62

Création d un profile (11) CREATE PROFILE nom_profile LIMIT [SESSIONS_PER_USER {entier UNLIMITED DEFAULT}] [CPU_PER_SESSION {entier UNLIMITED DEFAULT}] [CPU_PER_CALL {entier UNLIMITED DEFAULT}] [CONNECT_TIME {entier UNLIMITED DEFAULT}] [IDL_TIME {entier UNLIMITED DEFAULT}] [LOGICAL_READS_PER_SESSION {entier UNLIMITED DEFAULT}] [LOGICAL_READS_PER_CALL {entier UNLIMITED DEFAULT}] [PRIVATE_SGA {entier [K M] UNLIMITED DEFAULT}] [FAILED_LOGIN_ATTEMPTS {entier UNLIMITED DEFAULT}] Nombre d essais de connexion infructueux (échoué) avant le blocage du compte 63

Création d un profile (12) CREATE PROFILE nom_profile LIMIT [SESSIONS_PER_USER {entier UNLIMITED DEFAULT}] [CPU_PER_SESSION {entier UNLIMITED DEFAULT}] [CPU_PER_CALL {entier UNLIMITED DEFAULT}] [CONNECT_TIME {entier UNLIMITED DEFAULT}] [IDL_TIME {entier UNLIMITED DEFAULT}] [LOGICAL_READS_PER_SESSION {entier UNLIMITED DEFAULT}] [LOGICAL_READS_PER_CALL {entier UNLIMITED DEFAULT}] [PRIVATE_SGA {entier [K M] UNLIMITED DEFAULT}] [FAILED_LOGIN_ATTEMPTS {entier UNLIMITED DEFAULT}] [PASSWORD_LIFE_TIME {entier UNLIMITED DEFAULT}] Durée maximale d un mot de passe (période normale) 64

Création d un profile (13) CREATE PROFILE nom_profile LIMIT [SESSIONS_PER_USER {entier UNLIMITED DEFAULT}] [CPU_PER_SESSION {entier UNLIMITED DEFAULT}] [CPU_PER_CALL {entier UNLIMITED DEFAULT}] [CONNECT_TIME {entier UNLIMITED DEFAULT}] [IDL_TIME {entier UNLIMITED DEFAULT}] [LOGICAL_READS_PER_SESSION {entier UNLIMITED DEFAULT}] [LOGICAL_READS_PER_CALL {entier UNLIMITED DEFAULT}] [PRIVATE_SGA {entier [K M] UNLIMITED DEFAULT}] [FAILED_LOGIN_ATTEMPTS {entier UNLIMITED DEFAULT}] [PASSWORD_LIFE_TIME {entier UNLIMITED DEFAULT}] [PASSWORD_REUSE_TIME PASSWORD_REUSE_MAX {entier UNLIMITED DEFAULT}] Nombre de jours qui doit s écouler avant de pouvoir réutiliser un mot de passe périmé 65

Création d un profile (14) CREATE PROFILE nom_profile LIMIT [SESSIONS_PER_USER {entier UNLIMITED DEFAULT}] [CPU_PER_SESSION {entier UNLIMITED DEFAULT}] [CPU_PER_CALL {entier UNLIMITED DEFAULT}] [CONNECT_TIME {entier UNLIMITED DEFAULT}] [IDL_TIME {entier UNLIMITED DEFAULT}] [LOGICAL_READS_PER_SESSION {entier UNLIMITED DEFAULT}] [LOGICAL_READS_PER_CALL {entier UNLIMITED DEFAULT}] [PRIVATE_SGA {entier [K M] UNLIMITED DEFAULT}] [FAILED_LOGIN_ATTEMPTS {entier UNLIMITED DEFAULT}] [PASSWORD_LIFE_TIME {entier UNLIMITED DEFAULT}] [PASSWORD_REUSE_TIME PASSWORD_REUSE_MAX {entier UNLIMITED DEFAULT}] Nombre maximal de réutilisation d un même mot de passe 66

Création d un profile (15) CREATE PROFILE nom_profile LIMIT [SESSIONS_PER_USER {entier UNLIMITED DEFAULT}] [CPU_PER_SESSION {entier UNLIMITED DEFAULT}] [CPU_PER_CALL {entier UNLIMITED DEFAULT}] [CONNECT_TIME {entier UNLIMITED DEFAULT}] [IDL_TIME {entier UNLIMITED DEFAULT}] [LOGICAL_READS_PER_SESSION {entier UNLIMITED DEFAULT}] [LOGICAL_READS_PER_CALL {entier UNLIMITED DEFAULT}] [PRIVATE_SGA {entier [K M] UNLIMITED DEFAULT}] [FAILED_LOGIN_ATTEMPTS {entier UNLIMITED DEFAULT}] [PASSWORD_LIFE_TIME {entier UNLIMITED DEFAULT}] [PASSWORD_REUSE_TIME PASSWORD_REUSE_MAX {entier UNLIMITED DEFAULT}] [PASSWORD_LOCK_TIME {entier UNLIMITED DEFAULT}] Nombre de jours du blocage du compte après un FAILED_LOGIN_ATTEMPS 67

Création d un profile (16) CREATE PROFILE nom_profile LIMIT [SESSIONS_PER_USER {entier UNLIMITED DEFAULT}] [CPU_PER_SESSION {entier UNLIMITED DEFAULT}] [CPU_PER_CALL {entier UNLIMITED DEFAULT}] [CONNECT_TIME {entier UNLIMITED DEFAULT}] [IDL_TIME {entier UNLIMITED DEFAULT}] [LOGICAL_READS_PER_SESSION {entier UNLIMITED DEFAULT}] [LOGICAL_READS_PER_CALL {entier UNLIMITED DEFAULT}] [PRIVATE_SGA {entier [K M] UNLIMITED DEFAULT}] [FAILED_LOGIN_ATTEMPTS {entier UNLIMITED DEFAULT}] [PASSWORD_LIFE_TIME {entier UNLIMITED DEFAULT}] [PASSWORD_REUSE_TIME PASSWORD_REUSE_MAX {entier UNLIMITED DEFAULT}] [PASSWORD_LOCK_TIME {entier UNLIMITED DEFAULT}] [PASSWORD_GRACE_TIME {entier UNLIMITED DEFAULT}] Nombre de jours après la fin de la période normale (PASSWORD_LIFE_TIME) avant que le compte ne soit bloqué 68

Création d un profile (17) CREATE PROFILE nom_profile LIMIT [SESSIONS_PER_USER {entier UNLIMITED DEFAULT}] [CPU_PER_SESSION {entier UNLIMITED DEFAULT}] [CPU_PER_CALL {entier UNLIMITED DEFAULT}] [CONNECT_TIME {entier UNLIMITED DEFAULT}] [IDL_TIME {entier UNLIMITED DEFAULT}] [LOGICAL_READS_PER_SESSION {entier UNLIMITED DEFAULT}] [LOGICAL_READS_PER_CALL {entier UNLIMITED DEFAULT}] [PRIVATE_SGA {entier [K M] UNLIMITED DEFAULT}] [FAILED_LOGIN_ATTEMPTS {entier UNLIMITED DEFAULT}] [PASSWORD_LIFE_TIME {entier UNLIMITED DEFAULT}] [PASSWORD_REUSE_TIME PASSWORD_REUSE_MAX {entier UNLIMITED DEFAULT}] [PASSWORD_LOCK_TIME {entier UNLIMITED DEFAULT}] [PASSWORD_GRACE_TIME {entier UNLIMITED DEFAULT}] [PASSWORD_VERIFY_FUNCTION {fonction NULL DEFAULT}] ; Permet de définir l algorithme de vérification du mot de passe 69

Modification d un profile ALTER PROFILE nom_profile LIMIT [SESSIONS_PER_USER {entier UNLIMITED DEFAULT}] [CPU_PER_SESSION {entier UNLIMITED DEFAULT}] [CPU_PER_CALL {entier UNLIMITED DEFAULT}] [CONNECT_TIME {entier UNLIMITED DEFAULT}] [IDL_TIME {entier UNLIMITED DEFAULT}] [LOGICAL_READS_PER_SESSION {entier UNLIMITED DEFAULT}] [LOGICAL_READS_PER_CALL {entier UNLIMITED DEFAULT}] [PRIVATE_SGA {entier [K M] UNLIMITED DEFAULT}] [FAILED_LOGIN_ATTEMPTS {entier UNLIMITED DEFAULT}] [PASSWORD_LIFE_TIME {entier UNLIMITED DEFAULT}] [PASSWORD_REUSE_TIME PASSWORD_REUSE_MAX {entier UNLIMITED DEFAULT}] [PASSWORD_LOCK_TIME {entier UNLIMITED DEFAULT}] [PASSWORD_GRACE_TIME {entier UNLIMITED DEFAULT}] [PASSWORD_VERIFY_FUNCTION {fonction NULL DEFAULT}] ; 70

Suppression d un profile DROP PROFILE nom_profile [CASCADE] ; L option CASCADE permet de supprimer le profil pour tous les utilisateurs concernés en le remplaçant par le profil DEFAULT 71