Gestion des utilisateurs et de leurs droits



Documents pareils
Bases de données et sites WEB

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.

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

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

TP Administration Oracle

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

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

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

Administration des Bases de Données Oracle

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

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

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

Le Langage De Description De Données(LDD)

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

Du 10 Fév. au 14 Mars 2014

COMPOSANTS DE L ARCHITECTURE D UN SGBD. Chapitre 1

Auto-évaluation Oracle: cours de base

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

Olivier Mondet

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

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

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

TP11 - Administration/Tuning

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

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

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

et Groupe Eyrolles, 2006, ISBN :

Notion de base de données

Fascicule des Travaux Pratiques Oracle

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

Chapitre III Architecture de Base de Données Oracle

Plan de formation : Certification OCA Oracle 11g. Les administrateurs de base de données (DBA) Oracle gèrent les systèmes informatiques

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

Création d'une nouvelle base de données

Oracle : Administration

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

Administration des bases de données

Aide en ligne du portail

TUTORIEL D INSTALLATION D ORACLE ET DE SQL DEVELOPPER TUTORIEL D INSTALLATION D ORACLE...1 ET DE SQL DEVELOPPER...1

CREATION WEB DYNAMIQUE

Secteur Tertiaire Informatique Filière étude - développement. Accueil. Apprentissage. Période en entreprise. Evaluation.

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

Cours: Administration d'une Base de Données

Master Exploration Informatique des données DataWareHouse

Rootkits sous Oracle

Introduction aux SGBDR

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

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

Cours de SQL SERVER 2005 SQL SERVER 2005

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

Base de données II Module 3b

CHAPITRE 1 ARCHITECTURE

SQL Historique

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

contact@nqicorp.com - Web :

OPTENET DCAgent Manuel d'utilisateur

Présentation de l'outil RMAN d'oracle

Compétences Business Objects

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

Le Langage SQL version Oracle

et Groupe Eyrolles, 2006, ISBN :

Optimisations des SGBDR. Étude de cas : MySQL

Administration des bases de données sous Oracle. 10g. Fabien De Marchi, Jean-Marc Petit. Université de Lyon. November 22, /96


CYCLE CERTIFIANT ADMINISTRATEUR BASES DE DONNÉES

Bases de données relationnelles

PHP 5. La base de données MySql. A. Belaïd 1

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

Guide de configuration de SQL Server pour BusinessObjects Planning

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

Oracle 11g Optimisez vos bases de données en production (ressources matérielles, stockage, mémoire, requêtes)

Installation des moteurs SQL Pour Micro-SESAME

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

Modélisation et Gestion des bases de données avec mysql workbench

TP Contraintes - Triggers

LES ACCES ODBC AVEC LE SYSTEME SAS

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

Le modèle de sécurité windows

NFA 008. Introduction à NoSQL et MongoDB 25/05/2013

Architecture de la plateforme SBC

Oracle Learning Library Tutoriel Database 12c Installer le logiciel Oracle Database et créer une Database

Oracle 10g Administration +

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

STATISTICA Version 12 : Instructions d'installation

TeamViewer 9 Manuel Management Console

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

Bases de Données Avancées

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

Synchronisation Mysql (Replication)

Administration de Base de Données Notes de cours

PHP. Bertrand Estellon. 26 avril Aix-Marseille Université. Bertrand Estellon (AMU) PHP 26 avril / 214

PPE GESTION PARC INFORMATIQUE

Utiliser Access ou Excel pour gérer vos données

Devoir Data WareHouse

Administration des bases de données relationnelles Part I

PHP 4 PARTIE : BASE DE DONNEES

Tutorial sur SQL Server 2000

TP Bases de données réparties

La gestion des boîtes aux lettres partagées

Transcription:

Gestion des utilisateurs et de leurs droits Chap. 12, page 323 à 360 Lors de la création d'un utilisateur vous devez indiquer son nom, ses attributs, son profil, la méthode d'authentification (par le SE ou par mot de passe d'oracle), son espace logique par défaut, son espace logique temporaire, À la création de la base de données, l'utilisateur SYS reçoit tous les privilèges systèmes disponibles et tous rôles existants. Ayant le privilège GRANT ANY PRIVILEGE, il peut à son tour redistribuer tous les privilèges reçus. Pour assurer la sécurité de la base de données, il faut supprimer les autorisations inutiles et ne donner que les droits nécessaires aux divers utilisateurs. La gestion des utilisateurs implique : La gestion des ressources par les profils. La gestion des privilèges systèmes et des privilèges objets par les rôles. La gestion des quotas sur les espaces logiques Dans le dictionnaire de données, plusieurs vues permettent de visualiser les privilèges et les rôles disponibles. Gestion d un utilisateur (p.326) CREATE USER nom IDENTIFIED { BY mot_de_passe 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}]; CREATE USER nom IDENTIFIED { BY mot_de_passe EXTERNALLY} Le nom et le mot de passe doivent respecter les règles [ DEFAULT TABLESPACE nom_tablespace] N empêche pas l utilisateur de créer des objets dans un autre tablespace L utilisateur doit avoir un quota pour utiliser un espace logique. Si pas de «DEFAULT TABLESPACE», ce sera celui par défaut du système. ALTER DATABASE DEFAULT TABLESPACE nom; Page 1

[TEMPORARY TABLESPACE nom_tablespace] Pour les gros tris trop gros pour être en totalité en mémoire PGA Si pas de «TEMPORARY TABLESPACE», ce sera celui par défaut du système. ALTER DATABASE DEFAULT TEMPORARY TABLESPACE nom; [QUOTA { valeur [K M] UNLIMITED } ON nom_tablespace [, ] ] Quota dans un tablespace permanent en particulier (non temporaire ) Sans quota, impossible d ajouter des données dans les tables/index. Par défaut les utilisateurs n ont pas de quota Possible de consulter les objets sans avoir de quota [PROFILE nom_profile] Ensemble nommé de limitation de ressources (CPU, temps de connexion, password ) [PASSWORD EXPIRE] Force l utilisateur à changer son mot de passe [ACCOUNT {LOCK UNLOCK}]; Pour verrouiller ou déverrouiller un utilisateur. Autres énoncés SQL Modifier un utilisateur : ALTER USER nom. (P.329) Supprimer un utilisateur : DROP USER nom [CASCADE]; (p.330) Essentiel de faire CASCADE si l utilisateur a des objets S il n y a pas de CASCADE, alors une erreur sera affichée lors de la suppression de l usager Page 2

Les profils Un profil est un mécanisme pour contrôler la quantité d'espace disque ou de bande passante d'e/s utilisé pour exécuter une requête utilisateur. Il est donc un ensemble nommé de limitations de ressources. Un profil est attribuable à un utilisateur et un seul profil peut être donné à la fois à un utilisateur. Tous les utilisateurs doivent avoir un profil. Un profil limite donc les ressources attribuées à un utilisateur. Une limite peut s'appliquer au niveau d'une session, d'un utilisateur ou bien d'une requête. De plus, les profils facilitent la gestion des mots de passe des utilisateurs. Le profil DEFAULT s'applique à tout nouvel utilisateur si aucun autre profil ne lui est assigné. Par défaut, sur une nouvelle base de données, la gestion des profils est désactivée. Donc RESOURCE_LIMIT est à FALSE. Les limites de ressources seront appliquées si le paramètre RESOURCE_LIMIT vaut TRUE ALTER SYSTEM SET RESOURCE_LIMIT = TRUE SCOPE = BOTH; Le paramètre RESOURCE_LIMIT n a pas d influence sur les limites des mots de passe. Le profil DEFAULT - Ce profil est créé lors de la création de la base de données et ne peut être détruit. - Le profil DEFAULT n a aucune limite par défaut. Il est cependant possible de le modifier. Certaines valeurs permises lors de la création d un profil - Le mot clé UNLIMITED : aucun contrôle sur la ressource. - Le mot clé DEFAULT : la valeur sera celle de la limite du profil DEFAULT - Ne rien mettre : la valeur sera celle de la limite du profil DEFAULT Les ressources qui peuvent être limitées Limite du nombre de sessions ouvertes en même temps par un utilisateur. Limites de temps et d'activités Pour le CPU, le temps par appel/session Par appel : par section d une exécution d une requête SQL (parse, execute, fetch) Durée de la session Temps d'inactivité par session Les activités de lectures (LOGICAL_READ) Quantité de mémoire privée dans la SGA (si le serveur est en mode partagé) Page 3

Limite sur les mots de passes Nombre d essais infructueux, temps de vie du mot de passe, nombre de réutilisation du mot de passe, blocage du mot de passe, fonction de vérification. Création d un profil CREATE PROFILE nom_profil LIMIT SESSIONS_PER_USER valeur UNLIMITED DEFAULT Nb de sessions simultanées CPU_PER_SESSION valeur UNLIMITED DEFAULT Maximum CPU par session (1/100 s) CPU_PER_CALL valeur UNLIMITED DEFAULT Maximum CPU total par appel (1/100 s) CONNECT_TIME valeur UNLIMITED DEFAULT Durée maximale de la connexion (en min.) IDLE_TIME valeur UNLIMITED DEFAULT Durée d inactivité (en min.) LOGICAL_READS_PER_SESSION valeur UNLIMITED DEFAULT Nb maximum de blocs lus par session LOGICAL_READS_PER_CALL valeur UNLIMITED DEFAULT Nb maximum de blocs lus par appel PRIVATE_SGA valeur UNLIMITED DEFAULT Qté de mémoire privée max. dans SGA (bytes) FAILED_LOGIN_ATTEMPTS valeur UNLIMITED DEFAULT Nb de connexions échouées avant le verrouillage du compte PASSWORD_LOCK_TIME valeur UNLIMITED DEFAULT Durée du verrouillage (en jour) PASSWORD_LIFE_TIME valeur UNLIMITED DEFAULT Durée de vie du mot de passe (en jour) PASSWORD_REUSE_TIME valeur UNLIMITED DEFAULT Nb de jours pendant lequel un mot de passe ne peut pas être réutilisé PASSWORD_REUSE_MAX valeur UNLIMITED DEFAULT Nb de changements de mots de passe avant qu un mot de passe puisse être réutilisé PASSWORD_GRACE_TIME valeur UNLIMITED DEFAULT Période de grâce après expiration du mot de passe (en jour) PASSWORD_VERIFY_FUNCTION nom NULL DEFAULT; Fonction qui vérifie la complexité du mot de passe. Il y a également la limitation COMPOSITE_LOGIN, permettant de limiter selon la somme de : CPU_PER_USER, CONNECT_TIME, LOGICAL_READS_PER_SESSION et PRIVATE_SGA. Exemple : CREATE PROFILE profilusager LIMIT SESSIONS_PER_USER 5 FAILED_LOGIN_ATTEMPTS 3; Modification d un profil Une modification n'est effective que lors de la prochaine connexion de l'utilisateur. Toute modification au profil DEFAULT affecte les valeurs par défaut des autres profils ALTER PROFILE nom_profil LIMIT.(p.334) Page 4

Suppression d un profil Si un profil est attribué à plusieurs utilisateurs on doit l'éliminer en CASCADE Le profil DEFAULT sera alors attribué aux utilisateurs ayant perdu leur profil DROP PROFILE nom [CASCADE]; (p.336) Assigner un profil à un usager ALTER USER nom PROFILE nom_profile; Dictionnaire de données (p.337) DBA_USERS Le profil attribué est spécifié dans la colonne PROFILE DBA_PROFILES Permet d avoir des informations sur les profils et leurs limites. SELECT RESOURCE_NAME, LIMIT FROM DBA_PROFILES WHERE PROFILE = 'DEFAULT'; Les privilèges système Les privilèges système donnent le droit d exécuter une opération (ex. SQL) sur la base de données. Les privilèges objet donnent le droit d accéder à un objet (ex. table) d un autre utilisateur par des instructions SELECT, INSERT, UPDATE et DELETE. Exemple de privilège système : CREATE SESSION (ca n'appartient à personne, c'est une opération) Les privilèges systèmes représentent un droit d'exécuter des travaux batch, de modifier des paramètres systèmes, de créer des rôles, des créer des objets, etc. Il existe plus de 200 privilèges système. Ils sont énumérés dans la table SYSTEM_PRIVILEGE_MAP Souvent, le privilège porte le nom de l action (instruction SQL) permise: Accorder le pouvoir de créer une table : CREATE TABLE Accorder le pouvoir de créer un usager : CREATE USER Page 5

CREATE TABLE (7 droits d un seul coup!) Ce privilège donne les droits CREATE, ALTER et DROP ainsi que SELECT, INSERT, UPDATE et DELETE sur les tables dans le schéma de l'utilisateur. Les privilèges qui permettent d avoir accès aux objets de tous les schémas sont octroyés avec le modificateur ANY Accorder le pouvoir de créer des tables dans tous les schémas : CREATE ANY TABLE Ne s applique pas si le privilège ne porte pas sur des objets: CREATE ANY USERS CREATE ALTER DROP DELETE INSERT SELECT UPDATE ANY TABLE création des tables dans n importe quel schéma. ANY TABLE ANY TABLE ANY TABLE détruire des rangées dans n importe quelle table et schéma ANY TABLE ANY TABLE ANY TABLE Les privilèges les plus importants CREATE SESSION Impossible de se connecter sans ce privilège. Erreur ORA-01045. CREATE TABLE CREATE VIEW CREATE PROCEDURE Liste de privilèges système Vue du dictionnaire de données : SYSTEM_PRIVILEGE_MAP Références : http://www.psoug.org/reference/system_privs.html GRANT nom_priv *, + TO,nom_utilisateur PUBLIC- *, + *WITH ADMIN OPTION+; p.338 Un privilège reçu est effectif immediatement. Éviter de donner un privilège à tous les utilisateurs (PUBLIC) L option WITH ADMIN OPTION permet, à l utilisateur qui a reçu le privilège de redonner ce privilège à un autre usager. GRANT CREATE TABLE TO Scott WITH ADMIN OPTION ; L utilisateur Scott pourra donner à d autres utilisateurs le droit de créer des tables. REVOKE nom_priv *, + FROM,nom_utilisateur PUBLIC- *, +; p.339 Dictionnaire de données (p.350) DBA_SYS_PRIVS SESSION_PRIVS SYSTEM_PRIVILEGE_MAP Privilèges systèmes attribués aux utilisateurs Privilèges actifs pour la session actuelle. Liste de tous les privilèges Page 6

Les privilèges objet À la différence d'un privilège système, un privilège objet est le droit de réaliser un certain type d'action sur un objet précis de la base de données, tel qu'une table ou une séquence qui ne se trouve pas dans le propre schéma de l'utilisateur. Un utilisateur possède automatiquement tous les privilèges sur les objets de son propre schéma et peut accorder tout privilège sur ses objets à n'importe quel utilisateur ou rôle. Dans le cas de procédures, de fonctions ou de packages, seul le privilège EXECUTE est applicable. Une procédure invoquée avec les droits du créateur est exécutée comme s'il s'agissait du créateur avec tous ses privilèges actifs sur les objets référencés dans la procédure. Le créateur peut contrôler comment les autres utilisateurs accèdent aux objets. Les types de privilèges objet accordés sur une table se répartissant en deux catégories: Par défaut, seul le propriétaire d un objet à le droit d y accéder. Un privilège objet accorde le droit d accéder à un objet (ex. table) qui appartient à un autre utilisateur, par exemple le droit de mettre à jour le nom et prénom (colonne «nom et prenom») de la table SCOTT.EMP qui appartient à SCOTT. GRANT {nom_privilège *(liste_colonne)+ *, + ALL *PRIVILEGES+ - ON [nom_schéma].nom_objet TO,nom_utilisateur PUBLIC - *, + [WITH GRANT OPTION]; L option ALL PRIVILEGES permet d attribuer tous les privilèges objets : - INSERT, DELETE, INDEX, ALTER, UPDATE, SELECT (cette liste n est pas complète) Exemple : GRANT SELECT, INSERT(nom, prenom) ON SCOTT.EMP TO SCOTTY; REVOKE,nom_privilège *, + ALL *PRIVILEGES+ - ON [nom_schéma].nom_objet FROM,nom_utilisateur PUBLIC - *, +; CREATE INDEX n existe pas Le privilège système CREATE INDEX n existe pas. Pour avoir le droit de faire des index sur une table, il faut soit : - Être le créateur de la table - Avoir le privilège objet INDEX - Avoir le privilège système CREATE ANY INDEX Dictionnaire de données (p.351) DBA_TAB_PRIVS DBA_COL_PRIVS TABLE_PRIVILEGE_MAP Privilèges objet attribués aux utilisateurs sur la totalité de l objet Privilèges objet attribués aux utilisateurs sur certaines colonnes d un objet Liste de tous les privilèges objets. Page 7

Les rôles Un rôle est un regroupement de privilèges au niveau système et/ou objet pour faciliter l'administration des privilèges en diminuant le nombre d'instructions GRANT à exécuter. Tout changement aux privilèges octroyés à un groupe d'utilisateurs via un rôle sont immédiatement reportés au niveau des utilisateurs. Par la suite un rôle peut être activé de manière sélective par l'utilisateur ou automatiquement lors de l'ouverture d'une nouvelle session. Regroupement nommé de privilèges (système et objet) qui peuvent être attribué à un utilisateur ou à un autre rôle! Un rôle peut être attribué à un utilisateur Un rôle peut être attribué à un autre rôle Un rôle n appartient à aucun utilisateur ou schéma. Créer le rôle CREATE ROLE nomrôle ; Il faut avoir le privilège CREATE ROLE Un rôle ne doit pas porter le même nom qu'un utilisateur/schéma Détruire un rôle DROP ROLE nomrôle ; Attribuer des privilèges au rôle (semblable à un usager!) GRANT privilege *, + TO nomrôle [,..] [WITH ADMIN OPTION]; GRANT {nom_privilège*(liste_colonnes)+ *, + ALL - ON *nom_schéma.+nom_objet TO nomrôle *, +; Révoquer un privilège à un rôle REVOKE nom_role FROM nom_role; Page 8

Attribuer un rôle à un utilisateur ou à un rôle! GRANT nomrôle *, + TO,nom_utilisateur PUBLIC nomrôle - *, + *WITH ADMIN OPTION]; Révoquer un rôle à un utilisateur ou un rôle REVOKE FROM ; Les rôles pré-définis d Oracle Il est préférable de ne pas les utiliser. Il s'agit de CONNECT, DBA et RESSOURCE Ces rôles permettent de se connecter et de créer les principaux objets d un schéma (contiennent plusieurs privilèges!) DBA : Tous les privilèges système avec l'option WITH ADMIN OPTION MGMT_USER : Permet d utiliser le Database Contrôle (Enterprise Manager). Dictionnaire de données (p.352) DBA_ROLES Permet de voir la liste des rôles existants. Les quotas sur les espaces logiques Permet de limiter l'espace utilisé par un utilisateur dans les tablespaces. Quota par défaut = 0 On ne peut ajouter de données à une table nous appartenant. Pour assigner un quota spécifique à un utilisateur sur un tablespace CREATE USER ou ALTER USER QUOTA 500K ON Exemple : ALTER USER SCOTT QUTOA 50M ON tablespacenumero3; Quota illimité Pour assigner un quota illimité à un utilisateur sur un tablespace: CREATE USER ou ALTER USER QUOTA UNLIMITED ON Pour assigner un quota illimité sur tous les espaces logiques, il faut donner le privilège système UNLIMITED TABLESPACE Page 9

Les synonymes En utilisant un synonyme, un utilisateur n a pas à préfixer un appel d objet par son schéma. CREATE [OR REPLACE] [PUBLIC] SYNONYM [schema.]synonym FOR [schema.]objet Exemple : CREATE SYNONYM inventaires FOR Test.inventaires;// accessible par l usager ayant créé le synonyme CREATE PUBLIC SYNONYM inventaires FOR Test.inventaires // synonyme accessible à tous. Exemple complet REM Création du profil CREATE PROFILE PROFILE_INTER LIMIT IDLE_TIME 15 SESSIONS_PER_USER 3; REM Activation des profils (si nécessaire) ALTER SYSTEM SET RESOURCE_LIMIT=TRUE SCOPE=BOTH; REM Création d un role CREATE ROLE INTERROGATEUR; GRANT CREATE SESSION TO INTERROGATEUR; GRANT SELECT ON SCOTT.EMP TO INTERROGATEUR; GRANT SELECT ON SCOTT.DEPT TO INTERROGATEUR; GRANT SELECT ON SCOTT.BONUS TO INTERROGATEUR; REM Création d un usager et assignation d un rôle CREATE USER INTER IDENTIFIED BY INTER PROFILE PROFILE_INTER DEFAULT TABLESPACE USERS TEMPORARY TABLESPACE USERSTMP; REM Aucun quota, c'est un interrogateur. GRANT INTERROGATEUR TO INTER; Page 10