Administration Des Utilisateurs Présenté par : Zaineb ERRAJI Assia ELMRABAT Abir SADDIKI Proposé par: M.HANOUNE
Comptes utilisateur de base de données :
Caractéristiques du compte utilisateur: Un nom utilisateur Une méthode d’authentification Une tablespace par défaut Une tablespace temporaire Un profil utilisateur
C’est quoi un user ?? Un utilisateur de base de données va correspondre à un login qui aura reçu certains privilèges. Cet utilisateur sera stocké dans le dictionnaire de données et disposera d'un espace de stockage pour ses objets qui seront alors stockés dans son schéma
Choix du nom de l'utilisateur: une stratégie de nommage en place exemple : Yassine Bihi donnera comme login bihi_y. Taille maximale 30 caractères. Unique commencer par une lettre Ne pas contenir de caractères spéciaux " BIHI_Y" ne sera pas identique à " bihi_y "
Création d’un utilisateur
Création par commende SQL : CREATE USER ‘’ appuser’’ PROFILE ‘’DEFAULT’’ IDENTIFIED BY ‘’*******’’ DEFAULT TABLESPACE ‘’APPTS’’ TOMPRARRY TABLESPACE ‘’TEMP ’’
Profils et utilisateurs
Un profile: Ensemble nommé de limites de ressources Nombre de connexion simultanées …. Ils sont affectable aux utilisateurs Opérations possibles : Création ; modification ; suppression Activation / désactivation
Les limitations du mots de passe: Ils offrent un certains nombre d'options très intéressantes vous permettant d'augmenter la sécurité de vos mots de passe.
FAILED_LOGIN_ATTEMPTS Option Description FAILED_LOGIN_ATTEMPTS Ce paramètre permet de définir le nombre maximal de tentatives de connexion. Si le nombre de connexion donné par le paramètre FAILED_LOGIN_ATTEMPTS est atteint le compte sera alors vérouillé pendant une période donnée par le paramètre PASSWORD_LOCK_TIME PASSWORD_LIFE_TIME Ce paramètre permet de définir la durée d'utilisation du même mot de passe. Ce paramètre devra être défini en jours. Une fois la date limite d'utilisation, Oracle demandera alors automatiquement à l'utilisateur de bien vouloir changer son mot de passe PASSWORD_REUSE_TIME Ce paramètre défini en nombre de jours, permet de définir le délai entre deux utilisations du même mot de passe. Par exemple 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. Si vous donner une valeur numérique au paramètre PASSWORD_REUSE_TIME vous devrez alors donner la valeur UNLIMITED au paramètre PASSWORD_REUSE_MAX .
Option Description PASSWORD_REUSE_MAX Ce paramètre permet de définir le nombre de réutilisation du même mot de passe (consécutive ou non). Si vous donner une valeur numérique au paramètre PASSWORD_REUSE_MAX vous devrez alors donner la valeur UNLIMITED au paramètre PASSWORD_REUSE_TIME PASSWORD_LOCK_TIME Ce paramètre permettra de définir la durée de vérouillage du compte utilisateur après avoir bloqué le compte avec le paramètre FAILED_LOGIN_ATTEMPTS. Le compte sera alors automatiquement dévérouillé lorsque le temps défini par ce paramètre sera atteint. Ce paramètre sera défini en jours (Vous pouvez aussi spécifier un nombre de minutes ou heure, par exemple 30 minutes donnera 30/1440) ou pourra avoir la valeur UNLIMITED (pour un vérouillage définitif et donc une action d'un adminstrateur pour débloquer le compte)
PASSWORD_VERIFY_FUNCTION PASSWORD_GRACE_TIME Ce paramètre permet de définir en jours le temps de grace qui vous sera alloué pour changer votre mot de passe. Par exemple vous avez défini le paramètre PASSWORD_LIFE_TIME à 30 ce qui signifie que l'utilisateur devra changer son mot de passe tout les 30 jours. Cependant si celui-ci décide pour une raison ou une autre de ne pas changer son mot de passe à la fin de cette période Oracle bloquera son compte automatiquement au bout de 3 demandes. L'intêret de ce paramètre est d'ajouter une période de grace pendant laquelle l'utilisateur sera en mesure de ne pas changer son mot de passe. Cela reviens à donner un délai supplémentaire à l'utilisateur pour changer son mot de passe. PASSWORD_VERIFY_FUNCTION Ce paramètre devra contenir le nom d'une fonction PL/SQL qui servira à vérifier les mots de passe saisi. Vous pouvez utiliser celle fournie par Oracle (script utlpwdmg.sql). La fonction fournie en argument devra avoir cette définition : <nom de la fonction> (username varchar2, password varchar2, old_password varchar2) RETURN boolean Si vous ne souhaitez pas utiliser de fonction de vérification utiliser la valeur NULL.
Les limitations des ressources système: Afin de mettre en place les limitations système vous allez devoir mettre le paramètre RESOURCE_LIMIT à true car Oracle va devoir générer des statistiques supplémentaire afin de pouvoir utiliser les valeurs des limitations.
Option Description SESSIONS_PER_USER Ce paramètre va vous permettre de définir le nombre de session maximum qu'un utilisateur pourra ouvrir. CPU_PER_SESSION Ce paramètre va vous permettre de définir le temps de processeur maximum en centièmes de secondes qu'une session pourra utiliser. CPU_PER_CALL Ce paramètre va vous permettre de définir le temps de processeur maximum en centièmes de secondes qu'un "appel serveur" pourra utiliser. 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) CONNECT_TIME Ce paramètre va vous permettre de définir le temps en minutes pour la durée de connexion maximale d'une session. A la fin du temps imparti la session sera automatiquement déconnectée. IDLE_TIME Ce paramètre va vous permettre de définir le temps en minutes pour la durée d'inactivité maximale d'une session. A la fin du temps imparti la session sera automatiquement déconnectée.
LOGICAL_READS_PER_SESSI ON LOGICAL_READS_PER_CALL Option Description LOGICAL_READS_PER_SESSI ON Ce paramètre va vous permettre de définir le nombre maximal de bloc lus durant une session. On parlera ici des blocs lus sur le disque et dans la mémoire. LOGICAL_READS_PER_CALL Ce paramètre va vous permettre de définir le nombre maximal de bloc lus durant un "appel serveur". On parlera ici des blocs lus sur le disque et dans la mémoire. COMPOSITE LIMIT Ce paramètre va vous permettre de définir le coût total des limitations autorisée pour une session. Oracle calcule le coût total de toute les ressources à partir du poids attribué aux paramètres CPU_PER_SESSION, CONNECT_TIME, LOGICAL_READS_PER_SESSION, et PRIVATE_SGA. Vous pourrez changer le poids associé à chaque limitations système avec la commande ALTER RESOURCE COST. PRIVATE_SGA Ce paramètre va vous permettre de définir la taille en Kbytes ou MBytes que pourra utiliser une session.
Création d’un profil:
Création avec les commendes SQL : CREATE PROFILE nom LIMIT [ SESSIONS_PER_USER { valeur | UNLIMITED | DEFAULT } ] [ CPU_PER_SESSION { valeur | UNLIMITED | DEFAULT } ] [ CPU_PER_CALL { valeur | UNLIMITED | DEFAULT } ] [ CONNECT_TIME { valeur | UNLIMITED | DEFAULT } ] [ IDLE_TIME { valeur | UNLIMITED | DEFAULT } ] [ LOGICAL_READS_PER_SESSION { valeur | UNLIMITED | DEFAULT } ] [ LOGICAL_READS_PER_CALL { valeur | UNLIMITED | DEFAULT } ] [ COMPOSITE_LIMIT { valeur | UNLIMITED | DEFAULT } ] [ PRIVATE_SGA { valeur [K|M] | UNLIMITED | DEFAULT } ] [ FAILED_LOGIN_ATTEMPTS { valeur | UNLIMITED | DEFAULT } ] [ PASSWORD_LIFE_TIME { valeur | UNLIMITED | DEFAULT } ] [ PASSWORD_REUSE_TIME { valeur | UNLIMITED | DEFAULT } ] [ PASSWORD_REUSE_MAX { valeur | UNLIMITED | DEFAULT } ] [ PASSWORD_LOCK_TIME { valeur | UNLIMITED | DEFAULT } ] [ PASSWORD_GRACE_TIME { valeur | UNLIMITED | DEFAULT } ] [ PASSWORD_VERIFY_FUNCTION { nom_fonction | NULL | DEFAULT } ] ;
Profil et User : Un profil peut être attribué à un utilisateur lors de la création de l’utilisateur (CREATE USER) lors d’une modification de l’utilisateur (ALTER USER) L’affectation d’un nouveau profil à des utilisateurs ne prend effet qu’à leur prochaine connexion. Par défaut, un utilisateur est créé avec le profil DEFAULT.
Authentification des utilisateurs
Les méthode d'authentification: L'authentification consiste à vérifier l'identité d'une entité (utilisateur, périphérique ou autre) qui souhaite utiliser les données, les ressources ou les applications.
Password: Ce mode, également appelé authentification par la base de données Oracle, crée chaque utilisateur avec un mot de passe associé qui doit être fourni lorsque ce dernier tente d'établir une connexion. External : avec ce mode, également appelé authentification par le système d'exploitation, les utilisateurs peuvent se connecter plus facilement à Oracle, sans avoir à indiquer de nom d’utilisateur ou de mot de passe. Global : l'authentification globale, qui est une authentification renforcée via l'option Oracle Advanced Security, permet l'identification des utilisateurs via la biométrie, les certificats x509, les systèmes tiers et Oracle Internet Directory.
Les tablespaces par défaut ,temporaires et le verrouillage
Un tablespace par défaut. un emplacement dans lequel l'utilisateur crée les objets s'il n'indique pas d'autre tablespace. Un tablespace temporaire. Un emplacement dans lequel l'utilisateur peut créer des objets temporaires, tels que des tris et des tables temporaires.
Authentification via un compte verrouillé Authentification via un compte déverrouillé
Schéma et utilisateurs
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 de données est crée, son schéma est automatiquement crée. Un utilisateur ne pourra alors être associé qu'à un seul schéma et réciproquement
Liste de vérification pour la création d’utilisateurs Un DBA peut créer des utilisateurs en utilisant la requête CREATE USER. Lorsqu’un utilisateur est créé, il ne possède aucun privilège. Il ne peut toujours pas se connecter à la base de données. Le DBA doit lui accorder des privilèges souhaités. Pour lui assigner ces privilèges de niveau système il faut utiliser l'instruction GRANT.
Gestion des privilèges Un privilège est le droit d'exécuter un type d'instruction SQL spécifique, ou d’accéder à un objet d’un autre utilisateur. Cela inclut le droit de : se connecter à une base de données. créer une table. sélectionner des lignes dans une table. Les privilèges d'une base de données Oracle peuvent être répartis en deux catégories distinctes : This is another option for an overview slide. les privilèges système les privilèges objets
Les privilèges système Permettent la création, modification, suppression, exécution de groupes d'objets. Ce n'est jamais un utilisateur final qui contrôle et attribue ces privilèges mais plutôt des administrateurs (DBA) et développeurs. Il existe à peu prés 127 privilèges système qui sont classés par catégories. Des privilèges sur les opérations système, par exemple: CREATE SESSION,CREATE TABLESPACE. Des privilèges permettant la gestion des objets dans le schéma d’utilisateur, par exemple: CREATE TABLE, CREATE USER. Des privilèges permettant la gestion des objets dans tous les schémas, par exemple: CREATE ANY TABLE.
Accorder des privilèges système On utilise l’ordre SQL, GRANT pour accorder des privilèges système aux utilisateurs.
Accorder des privilèges système System_privilege : spécifie le privilège système à accorder à un utilisateur ou un rôle. PUBLIC : Attribut le privilège système à tous les utilisateurs WITH ADMIN OPTION : permet à l’utilisateur d’attribuer à son tour des privilèges à d’autres utilisateurs ou rôles. L’option ADMIN permet d’attribuer des privilèges à d’autres utilisateurs. Ce privilège est habituellement réservé par sécurité à l’administrateur et rarement aux autres utilisateurs.
Accorder des privilèges système
Accorder des privilèges système
Accorder des privilèges système
Les privilèges objets un droit pour exécuter une action particulière sur une table, une vue, une séquence, une procédure, une fonction ou un package spécifique. Par exemple y accéder, la mettre a jour ou même y insérer des informations (select, update, insert , references, execute…). Par défaut, si vous êtes propriétaire d’un objet, tous les privilèges sur cet objet sont automatiquement acquis. Pour des raisons de sécurité, il faut faire attention aux privilèges que vous accordez aux autres utilisateurs.
Accorder des privilèges objets Pour attribuer un privilège objet, il faut utiliser la commande GRANT, voici la syntaxe à respecter :
Accorder des privilèges objets object_privilege : qui spécifie le privilège objet à attribuer column_list : définit une colonne d’une table ou d’une vue (Cela ne peut être définit uniquement lors d’ l’attribution des privilèges INSERT, REFERENCE ou UPDATE) ALL : Accorde tous les privilèges pour l’objet qui a été accordé avec WITH ADMIN OPTION object : identifie l’objet sur lequel les privilèges ont été attribués WITH GRANT OPTION : donne la possibilité d’attribuer des privilèges objets à d’autre utilisateurs ou rôle.
Accorder des privilèges objets
Accorder des privilèges objets
Affecter des quotas aux utilisateurs Les utilisateurs qui ne disposent pas du privilèges système UNLIMITED TAPLESPACE doivent se voir attribuer un Quota pour pouvoir créer des objets dans un tablespace. Un quota est une allocation d’espace dans un tablespace donné. Par défaut, un utilisateur ne dispose d'aucun quota sur aucun des tablespaces. Il existe trois options qui nous permettent d'affecter un quota utilisateur sur un tablespace.
Affecter des quotas aux utilisateurs Unlimited: Cette option permet à un utilisateur d’employer tout l’espace disponible dans le tablespace. Value: Il s’agit de l’espace mis à la diposition de l’utilisateur, exprimé en Kilo-octets ou mégaoctets. UNLIMITED TABLESPACE: ce privilège système remplace tous les quotas individuels sur les tablespaces et accorde à l'utilisateur un quota illimité sur tous les tablespaces, y compris SYSTEM et SYSAUX.
Rôles: Un rôle est un concept Oracle qui permet de regrouper plusieurs privilèges et / ou rôles afin de les affecter ou retirer en bloc à un utilisateur et / ou un rôle. Les privilèges sont accordés aux rôles (et révoqués) . Les rôles peuvent être accordés aux utilisateurs ou à d'autres rôles (et révoqués). Un rôle peut être constitué de privilèges système et objet. Un rôle peut être activé ou désactivé. L'activation d'un rôle peut nécessiter un mot de passe. Les rôles n'appartiennent à personne et ne résident dans aucun schéma. This is another option for an overview using transitions to advance through several slides.
Affecter des rôles aux utilisateurs:
Avantages des rôles: Gestion facile des privilèges. Gestion dynamique des privilèges. Disponibilité sélective des privilèges. Octroi via le system d’exploitation.
Rôles prédéfinis: This is another option for an overview slide.
Rôles sécurisés:
Rôles sécurisés:
Rôles sécurisés:
Rôles sécurisés:
Rôles sécurisés: Vous pouvez créer des rôles applicatifs sécurisés qui ne peuvent être activés que via l'exécution d'une procédure PL/SQL. CREATE ROLE secure_application_role IDENTIFIED USING < security_procedure_name>;
Conclusion