1 - Profil et utilisateur.
Afin d'augmenter la sécurité de la base de données il peut être très interessant
de mettre en place une gestion des mots de passe comme le nombre maximal de tentatives
de connexion à la base, le temps de vérouillage d'une compte, etc...
Il peut parfois aussi être intéressant de limiter les ressources système
allouées à un utilisateur afin d'éviter une surcharge inutile du serveur.
dans cette exemple, je vous montre la création des utilisateur,role sous Oracle.
1:Créer deux utilisateurs; Create user yani identified by saw ; Create user sami identified by tiger ; 2:Consulter le dictionnaire pour visualiser ces users; select username, account_status from dba_users where username in('YANI','SAMI'); 3:Accorder le privelege connect au premier user; Grant connect to yani; 4: Consulter le dictionnaire de YANI desc user_objects; select object_name,object_type from user_objects; Lancer un script; create table avion ( id number(5), nom varchar2(25)); e table avion R à la ligne 1 : 1031: privilèges insuffisants --On n'a pas attribuer le privelge ressource 5: Les rôles CONNECT et RESOURCE avec le droit d’accorder ses privilèges 2éme user; Grant connect, resource to sami; 6: Quel profil a été accordé à ces utilisateurs: select * from dba_profiles where profile='DEFAULT'; 7: profile utilisateurs desc dba_users select profile from dba_users where username in ('YANI','SAMI'); 11: Autoriser le premier utilisateur à créer des tables -accorder son privilège au deuxième utilisateur GRANT CREATE ANY TABLE TO YANI WITH ADMIN OPTION; Grant connect, resource to yani; 12 Retirer le droit de create de table REVOKE CREATE ANY TABLE FROM YANI; Creation de rôle create role gestion; 2-associer des privelge a ce role grant connect, create any table, create view to gestion; Afficher les roles sys 1 select * from dba_sys_privs 2* where grantee='GESTION' 3 ; GRANTEE PRIVILEGE ADM ------------------------------ ---------------------------------------- --- GESTION CREATE VIEW NO GESTION CREATE ANY TABLE NO --les resources select * from dba_sys_privs where grantee='RESOURCE'; GRANTEE PRIVILEGE ADM ------------------------------ ---------------------------------------- --- RESOURCE CREATE TRIGGER NO RESOURCE CREATE SEQUENCE NO RESOURCE CREATE TYPE NO RESOURCE CREATE PROCEDURE NO RESOURCE CREATE CLUSTER NO RESOURCE CREATE OPERATOR NO RESOURCE CREATE INDEXTYPE NO RESOURCE CREATE TABLE NO -limit les utilisateurs sur les profils; -Modification du profil par défaut -limiter le temps de connexion d'une session non active à 60 mn ALTER PROFILE DEFAULT LIMIT IDLE_TIME 60; -création d'un profil pour la gestion des connexions -limiter à 5 essais la tentative de connexion -le nombre de changements de mots de passe avant de pouvoir réutiliser -un mot de passe qui a déjà été employé -Nombre de jours qui doivent s'écouler avant qu'un mot de passe puisse -être réutilisé 1--Profile 01 CREATE PROFILE connexion LIMIT FAILED_LOGIN_ATTEMPS 4 PASSWORD_REUSE_MAX 3 PASSWORD_REUSE TIME UNLIMITED; 2-- Profile 02 CREATE PROFILE connexion01 LIMIT SESSIONS_PER_USER 3 --- Accorder De 03 tentatives Pour Utilisateurs CPU_PER_SESSION DEFAULT --- CPU Par User CPU_PER_CALL DEFAULT CONNECT_TIME DEFAULT IDLE_TIME 60 --- 60 Jours LOGICAL_READS_PER_SESSION DEFAULT LOGICAL_READS_PER_CALL DEFAULT COMPOSITE_LIMIT DEFAULT PRIVATE_SGA DEFAULT ; --Creation de fonction CREATE OR REPLACE FUNCTION complexite_pwd (username VARCHAR2,password VARCHAR2,old_password VARCHAR2) RETURN boolean IS BEGIN IF (length(password)<06) THEN raise_application_error(-20009, 'ERROR: Le mot de passe doit être supérieur à 06 caractére'); END IF; return True; END; / Activer cette fonction avec modification commande. ALTER PROFILE connexion01 LIMIT PASSWORD_VERIFY_FUNCTION complexite_pwd; VERIFIER Create user sami1 identified by tiger01 PROFILE connexion01 PASSWORD EXPIRE ; Grant connect,resource to sami1 3-- Profile 03 create profile prof_connexion limit sessions_per_user cpu_per_session 10000 : centiéme de seconde cpu_per_call 1 : centiéme de seconde connect_time unlimited : minutes idle_time 30 : minutes logical_reads_per_session default : db blocks logical_reads_per_call default : db blocks private_sga 20M failed_login_attempts 3 :Nombre d'erreurs permises à la saisie du mot de passe avant que le compte soit verrouillé password_life_time 60 : duréé de vie mot passe puis changé (jours) password_reuse_time 12 : peut pas réutiliser le mot de passe déja utiliser avant 12 jours password_reuse_max unlimited :Nombre de changement de mots de passe requis avant de pouvoir ré-utiliser un mot de passe déjà utilisé password_lock_time default :Durée (en jours) pendant laquelle un compte sera verrouillé après qu'il ait atteint le nombre d'erreurs permises à la saisie de son mot de passe (FAILED_LOGIN_ATTEMPTS),days password_grace_time 2 : En cas de péremption d'un mot de passe dû à un délai fixé par l'administrateur cette option permet de paramétrer une durée (en jours) pendant laquelle l'utilisateur pourra tout de même se connceter, mais recevra un avertissementdays password_verify_function null ; --permet de préciser une fonction (PL/SQL) vérifiant la compexité du mot de passe. Exemple de fonction CREATE OR REPLACE FUNCTION restrict_pwd_change (username VARCHAR2, password VARCHAR2, old_password VARCHAR2) RETURN boolean IS BEGIN raise_application_error(-20009, 'ERROR: Modification du mot de passe impossible'); END; / 4--Consulter les profils SELECT profile, resource_name, limit FROM Dba_Profiles WHERE resource_type = 'PASSWORD' ORDER BY profile; Activer cette fonction par la commande suivante : ALTER PROFILE DEFAULT LIMIT PASSWORD_VERIFY_FUNCTION restrict_pwd_change; --Pour désactiver cette restriction, utilisez cette commande : ALTER PROFILE DEFAULT LIMIT PASSWORD_VERIFY_FUNCTION null; --associer le profile au utilisateurs ALTER USER Yani PROFILE connexion01; |
|
No comments:
Post a Comment