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



Documents pareils
Gestion des utilisateurs et de leurs droits

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.

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

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

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

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

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

Du 10 Fév. au 14 Mars 2014

TP Administration Oracle

Le Langage De Description De Données(LDD)

CHAPITRE 1 ARCHITECTURE

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

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

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

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

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

Administration des Bases de Données Oracle

et Groupe Eyrolles, 2006, ISBN :

TP Contraintes - Triggers

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

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

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

Présentation de l'outil RMAN d'oracle

Chapitre III Architecture de Base de Données Oracle

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

Olivier Mondet

Auto-évaluation Oracle: cours de base

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

INSIA Bases de données ORACLE Installation SQL*Plus SQL-Developer

COMPOSANTS DE L ARCHITECTURE D UN SGBD. Chapitre 1

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

Base de données II Module 3b

Notion de base de données

Cours: Administration d'une Base de Données

Master Exploration Informatique des données DataWareHouse

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

Introduction aux SGBDR

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

contact@nqicorp.com - Web :

ORACLE TUNING PACK 11G

et Groupe Eyrolles, 2006, ISBN :

Le Langage SQL version Oracle

Rootkits sous Oracle

Synchronisation Mysql (Replication)

TP11 - Administration/Tuning

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

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

Les déclencheurs. Version 1.0. Grégory CASANOVA

Architecture de la plateforme SBC

Procédures Stockées WAVESOFT ws_sp_getidtable Exemple : ws_sp_getnextsouche Exemple :... 12

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

3. La SGA ou System global Area

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

Fascicule des Travaux Pratiques Oracle

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

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

RECOVERY MANAGER G. Mopolo-Moké prof. MBDS UNSA 2005/ 2006

CYCLE CERTIFIANT ADMINISTRATEUR BASES DE DONNÉES

Charte d'utilisation des infrastructures de la plate-forme bioinformatique Genotoul

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

LES ACCES ODBC AVEC LE SYSTEME SAS

Tutorial sur SQL Server 2000

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

contact@nqicorp.com - Web :

Logiciel HLA Fusion Version 3.X.X

STATISTICA Version 12 : Instructions d'installation

Préparer la synchronisation d'annuaires

Devoir Data WareHouse

CATALOGUE FORMATIONS DOMAINE Bases de données

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

TeamViewer 9 Manuel Management Console

Installation des moteurs SQL Pour Micro-SESAME

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

1. Qu'est qu'un tablespace?

Service d'installation et de démarrage de la solution de stockage réseau HP StoreEasy 1000/3000

Aide en ligne du portail

CONNECTEUR PRESTASHOP VTIGER CRM

Description de SQL SERVER. historique

SQL Server Administration d'une base de données transactionnelle avec SQL Server Management Studio (édition enrichie de vidéos)

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

Jérôme FESSY. IUT de Paris 5. Base de Données. Cours Introductif. Base de Données

ORACLE DIAGNOSTIC PACK 11G

Data Tier Application avec SQL Server 2008 R2

Microsoft OSQL OSQL ou l'outil de base pour gérer SQL Server

Sauvegarde des bases SQL Express

Serveur Acronis Backup & Recovery 10 pour Linux. Update 5. Guide d'installation

FileMaker 13. Guide ODBC et JDBC

Administration des bases de données relationnelles Part I

Sage CRM. 7.2 Guide de Portail Client

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

Symantec Backup Exec Remote Media Agent for Linux Servers

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

Synerway - Agent SQL Server

Oracle : Administration

Clients et agents Symantec NetBackup 7

Guide de déploiement

Phone Manager Soutien de l'application OCTOBER 2014 DOCUMENT RELEASE 4.1 SOUTIEN DE L'APPLICATION

Transcription:

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

RÉCAPITULATIF Un UTILISATEUR ORACLE est donc une combinaison de deux concepts usuels des banques de données. Un objet de contrôle d'accès à Oracle Un lieu "contenant" pour un schéma. Le cours précédent nous avons vu comment créer un utilisateur. Le cours précédent nous avons vu comment créer un utilisateur. Pour ce faire, il faut : Se connecter à un compte possédant le privilège DBA Faire appel à la commande CREATE USER où : nous pouvons spécifier les Espacesde travail, temporaire3 et autres.

CRÉATION D'UN UTILISATEUR De base, l'énoncé CREATE USER permet de : nommer le nouvel utilisateur choisir le mode de connexion par mot de passe (requiert une authentification pour ouvrir une session). de façon externe (via la connexion du poste local) de façon globale (via la connexion réseau)

AUTRES PARAMÈTRES DE L'UTILISATEUR En plus de ces paramètres de base, Oracle nous permet de gérer les paramètres énumérés dans la figure ci-haut. Nous avons vu la gestion des espaces-tables.

AUTRES PARAMÈTRES DE L'UTILISATEUR Finalement on peux aussi définir les éléments suivants : Un Quota ou espace mémoire maximum pour l'usager. Un Profil pour l'usager. Des paramètres d'utilisation pour le mot-de-passe. Déterminer si le compte est verrouilléou non.

QUOTAS Afin de bien gérer les ressources du système, Oracle nous permet de fixer un Quota d'utilisation pour chaque utilisateur. La rétro-flèche nous montre que cette clause peux être appliquée plus d'une fois lors de la création d'un utilisateur. Il est donc possible d'appliquer un Quotaà plusieurs espaces tables pour un même utilisateur sauf pour l'espace table temporaire.

QUOTAS (suite) Exemples : QUOTA 100M ON monespacetable QUOTA 500K ON sonespacetable QUOTA UNLIMITED ON autreespacetable QUOTA UNLIMITED : N'appose aucune limite (sauf celles des ressources du système) pour l'espace table où il est appliqué.

PROFILS Afin d'augmenter la sécurité de la base de données il peut être très intéressant de mettre en place : une gestion des mots de passe un nombre maximal de tentatives de connexion à la base le temps de verrouillage d'une compte 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. Oracle nous propose une solution efficace et pratique pour mettre en place ce type d'action : les PROFILS. Bien entendu, à défaut d'être DBA vous devrez avoir le privilège CREATE PROFILE afin de créer et gérer des profils.

PROFILS (suite) CREATE PROFILE nomduprofil LIMIT critère critère critère etc ; Les critères d'un profil se divisent en deux catégories : les critères de gestion des mots de passes les critères de gestion des ressources

PROFILS (mots de passes) FAILED_LOGIN_ATTEMPT Spécifie le nombre de tentatives de connexion échouées avant de verrouiller le système. PASSWORD_LOCK_TIME Spécifie le nombre de jours où l'utilisateur sera verrouillé après un dépassement de tentatives de connexion. PASSWORD_LIFE_TIME Détermine le nombre de jours de vie du mot de passe. PASSWORD_GRACE_TIME Ajoute un délai de gracepour permettre à l'utilisateur de changer son mot de passe (défaut = 180 jours).

PROFILS (mots de passes) PASSWORD_REUSE_TIME Nombre de jours minimum avant qu'un mot de passe puisse être réutilisé. PASSWORD_REUSE_MAX Nombre de changements de mot de passe avant qu'un mot de passe puisse être réutilisé. Ces deux derniers paramètres doivent êtres utilisés ensemble. Si l'un de ces paramètres (peu importe lequel) est fixé à UNLIMITED alors les mots de passes ne pourront jamais êtres réutilisés.

PASSWORD_VERIFY_FUNCTION Ce paramètre permet de passer un script PL/SQL au profil. PROFILS (mots de passes) CREATE PROFILE app_user2 LIMIT FAILED_LOGIN_ATTEMPTS 5 PASSWORD_LIFE_TIME 60 PASSWORD_REUSE_TIME 60 PASSWORD_REUSE_MAX 5 PASSWORD_VERIFY_FUNCTION mafonctiontest PASSWORD_LOCK_TIME 1/24 -- une heure PASSWORD_GRACE_TIME 10;

PROFILS (ressources) SESSION_PER_USER Détermine le nombre de connexion consécutives peuvent êtres accomplies pour un même utilisateur. CPU_PER_SESSION Détermine le temps d'utilisation du processeur pour une session avant qu'il ne passe à une autre tâche. Exprimé en 1/100 de secondes. CPU_PER_CALL Détermine le temps d'utilisation du processeur pour un appel avant qu'il ne passe à une autre tâche. Exprimé en 1/100 de secondes.

PROFILS (ressources) CONNECT_TIME Temps maximum de connexion pour une session. Exprimé en minutes. IDLE_TIME Temps maximum d'inactivité alloué à une session. Les grandes requêtes ne sont pas affectées par ça. LOGICAL_READS_PER_SESSION Nombre maximum de lecture de blocs de donnéestant en mémoire qu'au disque pour une session. LOGICAL_READS_PER_CALL Nombre maximum de lecture de blocs de donnéestant en mémoire qu'au disque pour un appel.

PROFILS (ressources) PRIVATE_SGA Spécifie la quantité d'espace privé qu'une session peux allouer au poold'espace commun global du système. System Global Area (SGA) Il s'agit d'un espace mémoire utilisé par Oracle pour gérer la plupart de ses objets. Une instance de notre banque, par exemple, est considéré comme un objet qu'oracle logera dans le SGA. Voir http://www.dba-oracle.com/concepts/sga_system_global_area.htm pour plus de détails sur le SGA.

CONTRÔLE D'ACCÈS & VERROUILLAGE Les paramètres de gestion de mots de passes peuvent être définis à même la commande CREATEUSER mais comme ils sont couverts par les profils, nous aurions recours à les gérer ici seulement s'il s'agit d'un petit nombre de ces paramètres comme pour forcer le changement de mot de passe : CREATE USER moi IDENTIFIED BY Secret PASSWORD EXPIRES: Par défaut, un utilisateurn'a pas le privilège de CONNEXION à sa création. Celui-ci peux lui être accordé par la commande : GRANT CONNECT TO nomutilisateur; Cependant, la commande CREATE USER nous fournis un niveau supplémentaire de contrôle d'accès en permettant de verrouiller le compte à sa création en ajoutant ACCOUNT LOCK à l'instruction de création. ALTER USER nomutilisateur ACCOUNT UNLOCK; Déverrouillera l'utilisateur.

PRIVILÈGES et RÔLES Une fois l'utilisateur créé, il faut lui attribuer des privilèges. A la création, le privilège lui permettant de se connecter ne lui est pas attribué. Il faudra donc le faire par l'attribution du rôle CONNECT GRANT CONNECT TO nomutilisateur Les rôlessont des assemblage de privilèges permettant d'alléger la tâche consistant à attribuer une série de privilèges à une suite d'utilisateurs. Oracle fournis les rôles suivants : Oracle fournis les rôles suivants : CONNECT ALTER SESSION, CREATE CLUSTER, CREATE DATABASE LINK, CREATE SEQUENCE, CREATE SESSION, CREATE SYNONYM, CREATE TABLE, CREATE VIEW RESOURCE CREATE CLUSTER, CREATE INDEXTYPE, CREATE OPERATOR, CREATE PROCEDURE, CREATE SEQUENCE, CREATE TABLE, CREATE TRIGGER, CREATE TYPE DBA Tous les privilèges d'ordre administratifs.

PRIVILÈGES et RÔLES Oracle fournis aussi les rôles suivants (à titre d'information) : EXP_FULL_DATABASE Tous les privilèges nécessaire pour accomplir une sauvegarde SELECT ANY TABLE, BACKUP ANY TABLE, EXECUTE ANY PROCEDURE, EXECUTE ANY TYPE, ADMINISTER RESOURCE MANAGER, and INSERT, DELETE, and UPDATE on the tables SYS.INCVID, SYS.INCFIL, and SYS.INCEXP. IMP_FULL_DATABASE Tous les privilèges nécessaire pour accomplir une restauration Utilisez la vue DBA_SYS_PRIVS pour voir les privilèges et ajoutez-y les rôles : EXECUTE_CATALOG_ROLE et SELECT_CATALOG_ROLE.

PRIVILÈGES et RÔLES SELECT_CATALOG_ROLE EXECUTE_CATALOG_ROLE DELETE_CATALOG_ROLE Permettent les requêtes, l'exécution de PL/SQL et la suppression dans les tables "dictionnaires" d'oracle. Donnent aussi accès au rôle HS_ADMIN_ROLE. HS_ADMIN_ROLE Sert à protéger l'accès aux HS (services hétérogènes) Aux données dictionnaire (grant SELECT) Aux paquetages (grant EXECUTE)

PRIVILÈGES et RÔLES RECOVERY_CATALOG_OWNER Donne accès au catalogue de récupération et aux privilèges suivants : CREATE SESSION, ALTER SESSION, CREATE SYNONYM, CREATE VIEW, CREATE DATABASE LINK, CREATE TABLE, CREATE CLUSTER, CREATE SEQUENCE, CREATE TRIGGER, and CREATE PROCEDURE AQ_ADMINISTRATOR_ROLE Permet d'administrer les files (advanced queing) et aux privilèges suivants : ENQUEUE ANY QUEUE, // Enfiler n'importe quelle file DEQUEUE ANY QUEUE, // Supprimer n'importe quelle file MANAGE ANY QUEUE, // Gérer n'importe quelle file SELECT privileges on AQ tables EXECUTE privileges on AQ packages. http://docs.oracle.com/cd/b10500_01/appdev.920/a96587/qintro.htm

PRIVILÈGES et RÔLES AQ_USER_ROLE Option périmée et déconseillée par Oracle. Oracle suggère de créer vos propres Rôles pour mieux gérer la sécurité de vos installations. Fournis un privilège d'exécution sur les queues avancées DBMS SNMPAGENT Utilisé par : Enterprise Manager (gestionnaire d'entreprise) Intelligent Agent (Agent"intelligent") Fournis les privilèges suivants: ANALYSE ANY SELECT sur une variété de vues.

CRÉATION DE RÔLES La création de «rôles» s'effectue en deux étapes : On crée le rôle On lui ajoute / retire des privilèges avec la commande GRANT La commande CREATE ROLE est utilisée pour créer les rôles.

CRÉATION DE RÔLES La commande CREATE ROLE a la syntaxe suivante : CREATE ROLE sonnom; CREATE ROLE sonnom NOT IDENTIFIED; Crée une coquille de «rôle» sans aucun attributs. CREATE ROLE sonnom IDENTIFIED BY Secret; Crée une coquille de «rôle» protégé par mot de passe. CREATE ROLE sonnom IDENTIFIED EXTERNALLY; CREATE ROLE sonnom IDENTIFIED GLOBALLY; Crée une coquille de «rôle» accessible par la sécurité du poste local ou du réseau (comme pour les «utilisateurs»).

CRÉATION DE RÔLES La commande CREATE ROLE a la syntaxe suivante (suite) : CREATE ROLE sonnom USING SCHEMA schema, package; CREATE ROLE sonnom USING package; Ces commandes créent un rôle associé à une application défini par un certain «package» La commande SET ROLE active ou désactive un ROLE pour une La commande SET ROLE active ou désactive un ROLE pour une session. SET ROLE ALL [EXCEPT role1, role2.rolen]; Active tous les rôles pour la présente session. SET ROLE unrole[ IDENTIFIED BY Secret ]; Active le rôles «unrole» pour la présente session. SET ROLE NONE; Désactive tous les rôles pour la présente session.

CRÉATION DE RÔLES Une fois le rôle créé, on lui associe des privièges. CREATE ROLE unrole; GRANT CREATE SESSION TO unrole; Cet énoncé ajoute le privilège de se connecter au rôle unrole. GRANT CREATE, UPDATE, SELECT on objet to unrole; Ce dernier énoncé ajoute les privilèges de CREATE, UPDATE et SELECT pour une table en particulier au rôle. Puis finalement, une fois que les rôles sont créés, on peux les attribuer à des usagers avec la commande GRANT. GRANT unrole TO Joe; GRANT unrole TO Alex; GRANT unrole TO Phil;

ATTRIBUTION / RÉVOCATION DE PRIVILÈGES Les privilèges et rôles s'attribuent par la commande GRANT. Plusieurs privilèges SYSTEM ont besoin de l'option ADMIN en plus d'être DBA pour êtres manipulés. Ainsi, la commande : GRAND SYSDBA TO monusager WITH ADMIN OPTION; donnera tout les droits à monusager. Utiliser avec prudence. De même que GRANT ALL PRIVILEGES TO monusager; donne accès à tout pour un utilisateur donné.

ATTRIBUTION / RÉVOCATION DE PRIVILÈGES Il existe deux types de privilèges sous Oracle : Les privilèges et les rôles SYSTEM Les privilèges SYSTEM peuvent se diviser en plusieurs catégories. Nous élaboreront ici sur certains de ces groupes seulement, les plus pertinents pour l'usage intermédiaire. Les privilèges OBJETS Les privilèges OBJETS Attribués aux utilisateurs, ils leurs donnent les privilèges d'agir sur certains objets de la banque.

PRIVILÈGES SYSTEM Ces catégories sont : CLUSTERS CONTEXTS DATABASE DATABASE LINK DEBUGGING DIMENSION DIRECTORIES INDEX TYPES INDEXES LIBRAIRIES MATERIALIZED VIEWS OPERATORS OUTLINES PROCEDURES PROFILES ROLES ROLLBACK SEGMENTS SEQUENCES SESSIONS SNAPSHOTS SYNONYMS TABLES TABLESPACE TRIGGERS TYPES USERS VIEWS MISCELLANEOUS

PRIVILÈGES OBJETS

EXEMPLES GRANT CREATE SESSION TO hr; Permet à l'utilisateur hr d'ouvrir(créer) une session. GRANT CREATE ANY MATERIALIZED VIEW, ALTER ANY MATERIALIZED VIEW, DROP ANY MATERIALIZED VIEW, QUERY REWRITE, GLOBAL QUERY REWRITE TO dw_manager WITH ADMIN OPTION; Alloue tous les privilèges nécessaire à dw_managerafin qu'il puisse gérer les "Entrepôts de données (data warehouse)". Concept utilisé dans les systèmes d'aide à la décision.

RÉVOCATION (Exemples) La commande inverse de GRANT est REVOKE. Elle permet de retirer (révoquer) un privilège. Exemples : REVOKE SELECT ON hr.employees FROM clark; Retire la possibilité pour l'utilisateur clarkd'effectuer des SELECT sur la table employees de l'utilisateur hr. REVOKE REFERENCES ON dept FROM clark CASCADE CONSTRAINTS; Retire la possibilité de référencer des éléments (clés étrangères). Cependant, s'il existe déjà des clés étrangères pour cet utilisateur, l'option CASCADE CONSTRAINTS devra être utilisé pour ne pas créer de violation de contraintes.

PRIVILÈGES SUR OBJETS L'allocation de privilèges (et de rôles) peux s'attribuer à des usagers mais aussi à des objets de schéma pour un utilisateur. Ainsi : GRANT SELECT, INSERT, UPDATE ON matable TO Joe; Donnera les permissions d'effectuer des SELECT, INSERT et des UPDATE pour une table précise même si cet utilisateur n'a pas ces privilèges comme tel. On pourrait aussi limiter les droits d'un utilisateur pour une table en particulier tel : GRANT ALL TO Joe; REVOKE SELECT, INSERT, UPDATE ON Salaires TO Joe; Ainsi, l'utilisateur «Joe» pourra opérer des GRANT SELECT, INSERT et des UPDATE sur toutes les tables de son schéma sauf la table «Salaires»

INFORMATION Afin d'interroger Oracle, voici quelques requêtes utiles: SELECT USERNAME AS "Nom", USER_ID AS "ID.", DEFAULT_TABLESPACE AS "Def. Tb.Space", TEMPORARY_TABLESPACE AS "Def. Temp.Space" FROM USER_USERS; Pour l'usager "CLASSE" Nom ID. Def. Tb.Space Def. Temp.Space ---------- ----- ------------------ ----------------------- CLASSE 39 USERS TEMP

INFORMATION SET LINES 200 COLUMN TABLE_NAME FORMAT A30 COLUMN DESC FORMAT A50 SPOOL C:/TEMP/nomFichier.txt SELECT * FROM dict; SPOOL OFF Liste le contenu de la table dictdans un fichier. dict contiens la liste des tables "dictionnaires" du schéma d'oracle.

INFORMATION Si je choisis une de ces tables et que j'effectue une requête : SQL> SELECT * FROM DBA_ROLE_PRIVS; GRANTEE GRANTED_ROLE ADM DEF ------------------------------------------------------------------ ------ ------ SYS XDBADMIN YES YES SYS IMP_FULL_DATABASE YES YES DBA SCHEDULER_ADMIN YES YES SYSTEM AQ_ADMINISTRATOR_ROLE YES YES TSMSYS RESOURCE NO YES SYS RECOVERY_CATALOG_OWNER YES YES SYS DELETE_CATALOG_ROLE YES YES DBA DELETE_CATALOG_ROLE YES YES DBA EXECUTE_CATALOG_ROLE YES YES XDBADMIN XDBWEBSERVICES NO YES HR RESOURCE NO YES

EXERCICES Créez un rôle «unrole» Associez les privilèges suivants à ce rôle : CONNECT Tous les privilèges agissant sur les données Aucun privilège agissant sur le schéma Associez ce rôle aux deux usagers créés la semaine passée.

RÉFÉRENCES Liste complète des privilèges et des rôles Oracle http://docs.oracle.com/cd/b10500_01/server.920/a96540/statements_912a.htm#sqlrf01603 Pour plus d'informations sur les rôles : http://www.dba-ora.fr/article-create-role-82706661.html