Administration pour développeurs. Oracle 10g

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.

COMPOSANTS DE L ARCHITECTURE D UN SGBD. Chapitre 1

Notion de base de données

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

Oracle Maximum Availability Architecture

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

3. La SGA ou System global Area

Chapitre III Architecture de Base de Données Oracle

CHAPITRE 1 ARCHITECTURE

Administration des Bases de Données Oracle

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

Oracle : Administration

Version Description Date

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

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

Administration des bases de données relationnelles Part I

TP Administration Oracle

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

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

CYCLE CERTIFIANT ADMINISTRATEUR BASES DE DONNÉES

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

Oracle 10g Administration +

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

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

Oracle 11g. Exploitation. Document Tellora Page 1/205. Auteur : Clotilde Attouche. Société TELLORA. Version 1.2. Du 6 Mai 2010

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

INSIA SIGL Bases de données ARCHITECTURE ORACLE

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

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

TP11 - Administration/Tuning

Oracle Database 11g: Administration Workshop I Release 2

Administration de Base de Données Notes de cours

Introduction aux SGBDR

Administration d'une base de données

Bases de Données Avancées

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

Du 10 Fév. au 14 Mars 2014

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

<Insert Picture Here> Solaris pour la base de donnés Oracle

Auto-évaluation Oracle: cours de base

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

Département Informatique de l Institut Universitaire de Technologie de l Université Bordeaux 1 Bases de Données Oracle : administration (cours)

Eléments de base de la sécurité des bases de données

et Groupe Eyrolles, 2006, ISBN :

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

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

Implémentation des SGBD

PREPARATION AU PTI SGBD

1. Qu'est qu'un tablespace?

Master Exploration Informatique des données DataWareHouse

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


Nœud Suisse du Projet International GBIF (Global Biodiversity Information Facility)

SQL Historique

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

BUFFER CACHE SHARED POOL LRU

Cours 6. Sécurisation d un SGBD. DBA - M1ASR - Université Evry 1

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

MEMORY MANAGEMENT Automated SQL exec Allocation dynamique des mémoires xxx_area_size

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

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

Gestion des transactions et accès concurrents dans les bases de données relationnelles

Encryptions, compression et partitionnement des données

ORACLE 10g Découvrez les nouveautés. Jeudi 17 Mars Séminaire DELL/INTEL/ORACLE

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

Le Langage De Description De Données(LDD)

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

UNION INTERCEPT SELECT WHERE JOINT FROM ACID

TP Contraintes - Triggers

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

PERFORMANCE BASE DE DONNÉES

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

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

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

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

Description de SQL SERVER. historique

COMPRENDRE LES DIFFERENTS TYPES DE CONNEXION LORS DE LA

Module n 2 CREER UNE BASE DE DONNEES 1Z0-001

Le Langage SQL version Oracle

CATALOGUE FORMATION 2014

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

Les bases de l optimisation SQL avec DB2 for i

Rootkits sous Oracle

Introduction à la sécurité sous Oracle

Session S12 Les bases de l optimisation SQL avec DB2 for i

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

Développement d une base de données relationnelle. Exploitation des statistiques de pêche au thon tropical

Tutorial sur SQL Server 2000

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

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

Mise en oeuvre TSM 6.1

Groupe Eyrolles, 2006, ISBN :

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

Guide d'installation et de configuration de Pervasive.SQL 7 dans un environnement réseau Microsoft Windows NT

Olivier Mondet

Présentation de l'outil RMAN d'oracle

Transcription:

Administration pour développeurs Oracle 10g

Page 2 1 1 Pré requis à l administration: Langage SQL et PL/SQL Avoir «pratiqué» Oracle

Page 3 Produits et gamme 1 Produits Oracle Database Oracle Application Server Oracle Developer Suite Oracle Enterprise Manager Grid control Gamme Edition Personnelle Edition Standard One Edition Standard Edition Entreprise Source de téléchargement http://www.oracle.com/technology/index.html

Page 4 Principales nouveautés Simplification Evolution de la structure 1 Installation Mise à niveau Tablespace SYSAUX Tablespace bigfile «Easy connect» Conseillers Groupe de tablespace temporaires Compactage des lignes dans un segment Automatisation Automatic Storage management (ASM) Automatic Workload Repository Autodiagnostic de la base Evolution des outils Data pump Scheduler Oracle Entreprise Manager Database Control (DC) Réglage de la mémoire partagée Collection des statistiques

Page 5 2 2 Instance Mémoire Processus Base de données Contrôle Data - Journalisation Paramètres d initialisation

Page 6 La base de données - 2 Paramètres d initialisation Contrôle Data Journalisation La base de donnée possède un nom défini par le paramètre DB_NAME = ma_base Le nom complet est préfixé par le nom de domaine défini par le paramètre DB_DOMAIN = domaine.fr è Ma_base.domaine.fr

Page 7 Fichier de contrôle - 2 Contrôle Contenu binaire Maintenu à jour par Oracle Data Journalisation Décrit la base Contient Le nom de la base La date et l heure de la création L emplacement des autres fichiers de la base Le numéro de séquence en cours è Présence indispensable ; il est conseillé de maintenir plusieurs copies (multiplexage)

Page 8 Fichiers de journalisation - 2 Contrôle Data Journalisation Enregistrent les modifications Organisés en groupes (2 au minimum) Le groupe est régulièrement réutilisé Un groupe peut être multiplexé (notion de membre ; 1 au minimum!) Un «tour de roue» = switch Un groupe inactif contient les données reproduites dans la base Utilisés lors de la «récupération» d une instance ou d un média

Page 9 Fichier de données - 2 Contrôle Data Journalisation Contiennent les données des segments Regroupés en «tablespace» Bigfile : jusqu à 32 To mais n utilise qu 1 seul fichier Smallfile : tablespace traditionnel de 1 ou plusieurs fichiers 2 tablespaces au strict minimum SysAux : apparu en 10g ; s appuie sur au moins 1 fichier System : s appuie sur au moins 1 fichier Ne devraient contenir aucune donnée applicative

Page 10 Organisation du stockage Bloc : Allocation élémentaire d espace Taille {4, 8, 16, 32 Ko} - 2 Extent : Ensemble de bloc contigu d un même segment Contrôle Data Journalisation Segment : Nom générique pour un objet conteneur de données Ex : Une table, un index Data01.dbf Tablespace Data01 Segment A Extent 1 Data02.dbf Segment A Extent 2 Segment B Extent 1 Segment C Extent 1 Segment D Extent 1 Segment B Extent 2 Espace non alloué

Page 11 Système de stockage Utilisation du système de fichiers de l OS Utilisation de partition «raw device» 2 Utilisation de ASM : Nouveauté 10g Gestionnaire de volume dédié à Oracle Utilise une instance ASM Nécessite le patch 3555863 sous Windows

Page 12 Notion de schéma Désigne l ensemble des objets d un utilisateur 2 Tout utilisateur est potentiellement associé à un schéma è il n existe pas d ordre pour créer un schéma Permet une organisation logique de l ensemble des objets créés dans Oracle Nb : Les objets appartiennent à un schéma Les objets sont définis dans le dictionnaire Les segments stockent leur données dans des tablespaces

Page 13 Règles de nommage 2 30 caractères au max Doit commencer par une lettre Peut utiliser {A-Z} {a-z} {0-9} {_ $ #} Ne doit pas être un mot réservé Définir une convention de nommage Idée : commencer le nom par un code suivi de sa désignation Ex : T001_Societes T002_Contacts V001_Meilleures_ventes Utiliser des synonymes T001_Societes -> T001 T002_Contacts -> T002 V001_Meilleures_ventes -> V001

Page 14 L instance SGA PGA 2 Instance Mémoire Processus

Page 15 La PGA SGA PGA 2 Mémoire Program Global Area Mémoire non partagée allouée aux différents processus Contient : SQL work area (zone de travail) Informations de session Variables de session Informations sur le traitement des requêtes Est intégrée à la SGA dans un contexte de serveur partagé Depuis la 9i gérée automatiquement et globalement via le paramètre : PGA_AGGREGATE_TARGET è Paramètres obsolètes : è Sort_area_size, Hash_area_size, Bitmap_merge_area

Page 16 La SGA SGA PGA 2 System Global Area Mémoire partagée Eventuellement redimensionnable à chaud (depuis la 9i) Eventuellement gérée automatiquement (depuis la 10g) Contient 6 zones principales : Mémoire Shared Pool Library Cache Dictionary Cache Database Buffer Cache Redo Log Buffer Java Pool Large Pool Streams Pool

Page 17 SGA Shared Pool SGA PGA (A) Mémoire 2 Principalement composée de Library Cache : Le code ascii SQL et PL-SQL La version parsée Le version exécutable (choisie par Oracle) Le Dictionary Cache Description des objects (tables, utilisateurs, ) Description des droits Taille : Définie par le paramètre : Shared_pool_size Ordre de grandeur < Go

Page 18 SGA Database buffer Cache (A) SGA Mémoire PGA 2 Contient les blocs de données récemment utilisés des : Tables Index Annulation Montés du disque grâce aux processus serveurs Paramètres Db_cache_size : cache pour les blocs de taille standard Db_Keep_cache_size : cache de données pérennes Db_Recycle_cache_size : cache de données éphémères

Page 19 SGA Redo Log Buffer SGA PGA (M) Mémoire 2 Espace de journalisation des modifications Contient : L image avant L image après Est vidé sur disque (fichier de journalisation) très fréquemment via le processus LGWR Est paramétré par : LOG_BUFFER

Page 20 SGA Autres pools SGA Mémoire PGA 2 JAVA_POOL_SIZE (A) Zone facultative 24 Mo par défaut Utilisée avec la machine virtuelle Java LARGE_POOL_SIZE (A) Zone facultative Utilisée si Oracle est en mode «serveur partagé» STREAMS_POOL_SIZE (M) Zone facultative

Page 21 Granule et gestion automatique SGA PGA 2 Mémoire Granule = allocation unitaire de RAM pour la SGA Taille de la granule Si taille de la SGA <= 128Mo è 4 Mo Sinon è 8 Mo / Windows è 16 Mo / autres systèmes Utilisation d un nb entier de granules de manière à couvrir le besoin Permet depuis la 9i de modifier l allocation Ram sans arrêt de l instance. Gestion Dynamique = ASSM Nouveauté 10g : réparti la RAM en fonction des structures (A) Paramétrée par SGA_TARGET

Page 22 Les processus d arrière plan DBWn LGWR CKPT SMON ARCn CJQn PMON Processus d arrière plan 2 1 processus = 1 rôle précis Généralement démarrés et arrêtés avec l instance Il a une trentaine de processus possibles Si un processus est lancé en plusieurs exemplaires son nom se termine par son N

Page 23 Processus DBW DBWn LGWR CKPT SMON ARCn CJQn PMON Processus d arrière plan 2 Database Writer Descend blocs dirty dans les fichiers de donnés Blocs dirty = blocs qui ont été modifiés en RAM Peut y avoir jusqu à 20 processus Est notamment activé : S il n y a plus de blocs libres ou non-dirty en RAM Lors du checkpoint A la fermeture propre de l instance

Page 24 Processus LGWR DBWn LGWR CKPT SMON ARCn CJQn PMON Processus d arrière plan 2 Log Writer Descend le Redo_log_Buffer dans le «fichier de journalisation» courant Activé par : Commit Saturation de 1/3 du Redo_log_Buffer Préalablement à DBWn Toutes les 3s

Page 25 Processus CKPT DBWn LGWR CKPT SMON ARCn CJQn PMON Processus d arrière plan 2 Check point Inscrit un point de contrôle dans les entêtes des fichiers de données et de contrôle Activé par : Basculement de fichier journal = Switch DBWn

Page 26 Processus SMON DBWn LGWR CKPT SMON ARCn CJQn PMON Processus d arrière plan 2 System Monitor Chargé de faire la «récupération» de l instance et, dans le cas de tablespace gérés par le dictionnaire (historique), de libérer les segments temporaires et de réassembler l espace libre contigu. Activé Lors du démarrage Périodiquement pour la gestion des TS gérés par le dictionnaire

Page 27 Processus ARC DBWn LGWR CKPT SMON ARCn CJQn PMON Processus d arrière plan 2 Archiver Recopie le fichier journal quand il devient inactif N est présent que si Oracle est en mode ARCHIVELOG

Page 28 Processus CJQ DBWn LGWR CKPT SMON ARCn CJQn PMON Processus d arrière plan 2 Job Queue Lance les travaux programmés en démarrant un processus esclave (Jnnn)

Page 29 Processus PMON DBWn LGWR CKPT SMON ARCn CJQn PMON Processus d arrière plan 2 Process Monitor Chargé du nettoyage des processus utilisateurs plantés Rollback des transactions en cours Libération des ressources

Page 30 Processus Serveur 2 Ne sont pas des processus d arrière plan! Chargés de traiter les requêtes des utilisateurs et notamment de «monter» les données en RAM Oracle en serveur dédié : 1 Processus par connexion Oracle en serveur partagé : 1 Processus pour plusieurs connexion 1 connexion peut utiliser n importe lequel des processus partagés

Page 31 Le fichier de paramètres Paramètres d initialisation 2 Lu pour pouvoir démarrer l instance Décrit notamment où se situe le fichier contrôle Stocke les différents paramètres Format texte (statique) à init***.ora Format binaire (dynamique) à spfile***.ora (depuis 9i) # exemple de fichier pfile Db_name = ma_base Instance_name = domaine.fr Control_files = ("d:\control01.ctl","e:\control02.ctl") Statistics_level = typical Compatible = 10.0.0 Sga_target = 1G Pga_aggregate_target = 10M

Page 32 Résumé des composants SGA PGA 2 Instance Mémoire DBWn LGWR CKPT SMON ARCn CJQn Processus PMON Base de données Contrôle Data - Journalisation Paramètres d initialisation

Page 33 Oracle en action SGA PGA Commit; val avant ab ; val après a val avant ab ; val après a val avant ab ; val après a 2 Operation complete Mémoire DBWn LGWR CKPT SMON ARCn CJQn Processus PMON -- -- Update Commit; T1 Set col1= a ; Contrôle Data Journalisation

Page 34

Page 35 Objets physiques : Définitions Tablespace : Espace, sur disque, de stockage des données Composé d un ou plusieurs fichiers (os) 3 Segment : Objet défini dans la base comme étant conteneur Table Index Rollback segment Extent : Ensemble de blocs physiquement contigus d un segment donné Blocs : Élément unitaire de gestion de l espace (RAM ou disque) d Oracle

Page 36 Objets logiques 3 Segments Tables Relationnelles Partitionnées XML Index Btree Bitmap Organisées en cluster Organisées en Index Partitionnés (voir : tables partitionnées) Autres segments Rollback segment Deferred segment LOBsegment Objets (non segment) Vues Synonymes Séquence Fonctions / procédures / déclencheurs / Packages

Page 37 Organisation du stockage A (Table) B (Index) C (Table) D (Table) 3 Tablespace Data01 Data01.dbf Segment A Extent 1 Segment A Extent 2 Data02.dbf Segment B Extent 1 Segment C Extent 1 Segment D Extent 1 Segment B Extent 2 Espace non alloué

Page 38 Tablespaces par défaut : SYSTEM et SYSAUX Ne pas écrire dans les Tablespaces par défaut Il faut donc, soit : préciser le TS lors de la création d objet Imposer que l administrateur désigne les différents types de TS associés à chaque utilisateur 3 SYSTEM Contient le dictionnaire SYSAUX Existe depuis la version 10 Est une extension de System

Page 39 Caractéristiques d un TS Type : Permanent : pour les objets permanents Temporaire : pour les objets temporaires Rollback : pour stocker les rollback segments (RBS) (on ne peut y créer que des RBS) 3 Mode de gestion des extensions Par le dictionnaire Localement Conseil : Créer des TS gérés localement avec gestion automatique des extensions CREATE Tablespace nom Datafile Extent management local autoallocate

Page 40 DC : Espace disque logique 3

Page 41 Création de table Table permanente Create table nom (col type [null] [, col type [null]]) [Tablespace ts] 3 Table temporaire Create global temporary table nom (col type [null] [, col type [null]]) On commit [delete preserve] rows [Tablespace ts] Rq : la structure de la table est permanente, les lignes sont temporaires soit à la transaction (delete) soit à la session (preserve)

Page 42 Création de tables optimisées Description Objectif 3 Partitionnées Organisées en cluster La table est découpée en plusieurs segments physiques distincts. Les index peuvent suivre le découpage et/ou non. 2 tables se trouvent écrites dans le même bloc. Nécessite la création d un «cluster». Optimiser les temps de réponse en écourtant les «table scan». Faciliter la gestion de l espace lors des historisations Optimiser les temps de réponse lorsque les 2 tables sont intimement associées Organisées en Index Les lignes sont écrites dans les blocs en respectant l ordre Optimiser les temps de réponse lors des tri.

Page 43 Gestion des index Classification des index Index de structure Sont associés à une contrainte d unicité (index b-tree) Sont défini à la création de la base, ne sont pas remis en cause Index de performance Sont remis en cause au cours du temps 3 Type d indexation Index b-tree OLTP / OLAP Utiles si faible cardinalité et requêtes restrictives Sous types possibles : Normal À clé inversée Index bitmap OLAP Utiles si forte cardinalité Portée d un index Une colonne Plusieurs colonnes

Page 44 Index Btree Select lettre from alphabet where lettre = Q ; A @ J @ S @ A @ D @ G @ J @ M @ P@ S @ V @ Y @ 3 A @ B @ C @ D @ E @ F @ G @ H @ I @ J @ K @ L @ M @ N @ O @ P @ Q @ R @ S @ T @ U @ V @ W @ X @ Create INDEX I_lettre on alphabet(lettre); Y @ Z @ A Q W Z S X E D C R F V T G B Y H N U J I K O L M P Create table alphabet (lettre char(1)); Insert into alphabet values( A ); Insert into alphabet values( Q );

Page 45 Index Bitmap Select * from factures where type = A or finies = N ; Create bitmap INDEX I_type on factures(type); Create bitmap INDEX I_finies on factures(finies); F 1 1 1. 0 1 0. 1 1 0 A 0 0 0. 1 0 1. 0 0 1 A 0 0 0. 1 0 1. 0 0 1 3 O 1 1 1. 1 1 0. 0 1 0 N 0 0 0. 0 0 1. 1 0 1 N 0 0 0. 0 0 1. 1 0 1 A ou N 0 0 0. 1 0 1. 1 0 1 13 001,F,O 002,F,O 003,F,O 045,A,O 046,F,O 047,A,N 094,F,N 135,F,O 096,A,N

Page 46 Authentification Rôles Définition Schéma Profil Privilèges

Page 47 Modes d authentification Identification Oracle SQL> connect nom/pwd Identification par l OS Le paramètre REMOTE_OS_AUTHENT doit être à TRUE 4 SQL> connect / Mise en correspondance du nom de session OS et du nom de connexion Oracle (préfixé par OPS$) Le préfixe est géré par le paramètre OS_Authentifation_prefix Sous Windows le nom de l annuaire fait partie du nom de l utilisateur OPS$DOMAINE\UTILISATEUR OPS$MACHINE\UTILISATEUR

Page 48 Gestion des utilisateurs 4 Création CREATE USER nom IDENTIFIED [By pwd externally] [DEFAULT TABLESPACE nom_ts] [TEMPORARY TABLESPACE nom_ts] [QUOTA [UNLIMITED X [K M] ] ON nom_ts] [PROFILE nom_p] [PASSWORD EXPIRE] [ACCOUNT [LOCK UNLOCK]; Modification ALTER USER nom IDENTIFIED [By pwd externally] [DEFAULT TABLESPACE nom_ts] [TEMPORARY TABLESPACE nom_ts] [QUOTA [UNLIMITED X [K M] ] ON nom_ts] [PROFILE nom_p] [PASSWORD EXPIRE] [ACCOUNT [LOCK UNLOCK]; Suppression DROP USER nom [cascade];

Page 49 Définition de paramètres par défaut Chaque utilisateur est (normalement) associé à un TS La création d objet est implicitement faite dans ce TS La désignation du TS par défaut ne donne pas pour autant le droit d écrire Le défaut, pour tout utilisateur (au cas où on prévoit d oublier de préciser un TS par utilisateur) Alter database default tablespace nom; 4 --vérification Select property_name, property_value from database_properties Where property_name = DEFAULT_PERMANENT_TABLESPACE ;

Page 50 Informations sur les utilisateurs Dba_users 4 Username User_ID Password Account_status Lock_date Expiry_date Default_tablespace Temporary_tablespace Created Profile Initial_rsrc_consumer_group External_name Dba_ts_quotas Tablespace_name Username Bytes Max_bytes Blocks Max_blocks Dropped

Page 51 Les profils Ensemble nommé de limitations de ressources Temps CPU Nb de lectures logiques Nb de sessions simultanées par utilisateur Temps d inactivité Durée de la session Si configuration en serveur partagé : Qté de mémoire privée en SGA 4 Paramètres de sécurité Seuil de verrouillage Délais de verrouillage Durée de vie des mots de passe Durée de vie de la période de grâce Historique des mots de passe Complexité

Page 52 Créer / modifier un profil 4 [CREATE ALTER] PROFILE nom LIMIT [SESSIONS_PER_USER x UNLIMITED DEFAULT] [CPU_PER_SESSION x UNLIMITED DEFAULT] [CPU_PER_CALL x UNLIMITED DEFAULT] [CONNECT_TIME x UNLIMITED DEFAULT] [IDLE_TIME x UNLIMITED DEFAULT] [LOGICAL_READS_PER_SESSION [LOGICAL_READS_PER_CALL x UNLIMITED DEFAULT] x UNLIMITED DEFAULT] [COMPOSITE_LIMIT x UNLIMITED DEFAULT] [PRIVATE_SGA [FAILED_LOGIN_ATTEMPTS] x [K M] UNLIMITED DEFAULT] x UNLIMITED DEFAULT] [PASSWORD_LIFE_TIME] x UNLIMITED DEFAULT] [PASSWORD_REUSE_TIME] [PASSWORD_REUSE_MAX] [PASSWORD_LOCK_TIME] [PASSWORD_GRACE_TIME] x UNLIMITED DEFAULT] x UNLIMITED DEFAULT] x UNLIMITED DEFAULT] x UNLIMITED DEFAULT] [PASSWORD_VERIFY_FUNCTION function NULL DEFAULT]

Page 53 Mise en place des profils Activation de la limitation via les profils Alter system set ressource_limit = [True false] [SCOPE = [memory spfile both]] 4 Affectation lors de la création de l utilisateur CREATE USER nom [ ] [PROFILE nom_p] [ ]; Après ALTER USER nom [ ] [PROFILE nom_p] [ ]; Suppression d un profil Drop profile nom_p [cascade];

Page 54 Informations sur les profils Dba_profiles Profile Resource_name Resource_type limit 4 Dba_users Username User_ID Password Account_status Lock_date Expiry_date Default_tablespace Temporary_tablespace Created Profile Initial_rsrc_consumer_group External_name

Page 55 Gérer les droits Ordres DCL Grant Revoke 4 Privilège système Droits d exécuter un ordre SQL Si le droit porte sur un ordre indépendamment du schéma on peut préciser ANY (ex : grant create [any] table ) Grant ordre_sql to utilisateur [With admin option]; Privilège sur les objets Droits d accéder à un objet (en dehors du propriétaire) Grant privilège on objet to utilisateur [With grant option];

Page 56 Privilèges système Select any dictionary Permet d accéder aux vues DBA_ sans être DBA Nécessaire pour utiliser DC Create session Donne le droit à un utilisateur de se connecter Sysoper Droits courants de gestion (ex: startup, alter database, ) Sysdba 4 Droits de sysoper «with admin option» + create database Donnés par défaut à sys Privilège nécessaire pour certaine tâche d administration Stocké dans le fichier de mot de passe (sinon authentification OS) Informations sur l attribution des privilèges système Dba_sys_privs V$pwfile_users

Page 57 Révocation de privilèges Privilège Système Revoke [privilège all privileges] From utilisateur; Le privilège est retiré au compte indiqué Privilège Objet Revoke [privilège all privileges] on objet From utilisateur; 4 Le privilège est retiré au compte indiqué AINSI qu à tous ceux pour qui le droit à été accordé via ce compte (grantor) Nb : Un compte peut obtenir les droits via des rôles. Revoke n est pas deny.

Page 58 Notion de base Fermée Vue Proc Proc Schéma 1 Donner les privilèges sur les vues et procédures aux utilisateurs Les vues et procédures accèdent aux tables. Les utilisateurs n ont pas de privilèges sur les tables 4 Prévoir l usage de : Synonymes Déclencheurs instead of (pour certaines vues) D étudier la clause AUTHID [Current_user definer] pour certaines procédures

Page 59 Accéder aux objets des autres schémas Select * from schema.objet@dblink Schema : nom du schéma dans lequel est stocké l objets Objet : nom de l objet @dblink : nom du contexte de sécurité qui permet l accès à une autre instance 4

Page 60 VPD et FGA Fonctionnalités avancées dans la gestion des droits via le package DBMS_RLS VPD = virtual private database FGA = fine-grained access 4

Page 61 Définition de rôle Ensemble nommé de privilèges Un utilisateur peut adhérer à un ou plusieurs rôle. Un rôle peut être attribué à un autre rôle. 4 Syntaxe : Create role nom [identified by pwd identified externally using nom_package not identified] Limitations Un rôle appartient à personne Un rôle n est pas associé à un schéma Un développeur doit avoir le droit direct (pas au travers un rôle) d accès aux objets cités dans ces procédures ou vues

Page 62 Attribuer/Révoquer un rôle Grant nom_role to [utilisateur Public nom role] [with admin option]; NB : attribuer un rôle : prédéterminer les rôles possibles pour un compte activer un rôle : indiquer le ou les rôles effectifs Attribuer n est pas activer! 4 Revoke nom_role from [utilisateur Public nom role];

Page 63 Activation/Désactivation d un rôle On ne peut activer que des rôles attribués par défaut : Alter user utilisateur default role [nom_role[,nom_role] all [except nom_role] none]; en cours de session 4 Set role [nom_role[,nom_role] all [except nom_role] none];

Page 64 Rôles prédéfinis Oracle propose un très grand nombre de rôles prédéfinis Ne pas donner plus de droits que voulu Etudier l opportunité d utiliser les rôles prédéfinis par rapport à créer les siens 4 Informations sur les privilèges accordés par rôle prédéterminé : Documentation Oracle Dba_sys_privs : privilèges système Session_privs System_privilege_map Dba_tab_privs : privilèges objets Dba_col_privs Table_privilege_map Dba_roles : liste des roles Dba_appliccation_roles Dba_role_privs Role_sys_privs Role_tab_privs Role_role_privs Session_roles

Page 65 Superviser les utilisateurs Liste des utilisateurs connectés V$session Liste des opérations en cours de plus de 6s V$session_longops Déconnecter un utilisateur Alter system kill session sid, serial# ; 4 Alter system disconnect session sid, serial# [immediate post_transaction];

Page 66 La concurrence d accès

Page 67 Transaction Définitions : Ensemble d écritures indissociables (atomiques) Est finie par l ordre COMMIT ou ROLLBACK L ensemble des écritures sont rendues permanentes ou sont ignorées Une transaction commence dès qu une autre fini ; pas d ordre/marque de début de transaction 5 Fonctionnement Durant une transaction les informations sont écrites dans les blocs Les verrous empêchent l accès aux autres transactions à ces verrous Les demandes de lecture sont dirigées vers les rollback segments (RBS) Les demandes d écritures sont mises en attente Lors de la fin de transaction COMMIT : les verrous sont levés ; les données sont disponibles pour tous ROLLBACK : les images avant sont recopiées depuis les RBS et les verrous sont levés ; les données initiales sont disponibles Les écritures sont isolées par des verrous Les lectures sont possibles dans les RBS Début de transaction Fin de transaction

Page 68 Remarques COMMIT est implicite À chaque ordre DDL Avec l ordre Truncate table Lors d une déconnexion explicite Rollback est implicite Sur perte de connexion À la sortie d un programme précompilé (Pro*, ) Cas particulier : SAVEPOINT Permet de revenir à une marque prédéterminée de la transaction UPDATE employees SET salary = 7000 WHERE last_name = 'Banda'; SAVEPOINT banda_sal; UPDATE employees SET salary = 120000 WHERE last_name = 'Greene'; SAVEPOINT greene_sal; SELECT SUM(salary) FROM employees; ROLLBACK TO SAVEPOINT banda_sal; UPDATE employees SET salary = 12000 WHERE last_name = 'Greene'; COMMIT;

Page 69 Verrous Le verrouillage est implicite et automatique Verrous DML La transaction pose : 1 verrou partagé au niveau de la table 1 verrou exclusif sur chaque ligne modifiée Verrous DDL La contention des verrous peut être facilement observable Ordres DDL : Create ; Alter ; Drop La transaction pose 1 verrou exclusif sur l objet Ordres DCL (et exceptions) La transaction pose 1 verrou partagé La contention de ces verrous est rare du fait de la brièveté de la transaction (commit intégré) Oracle ne transforme pas un verrou ligne en verrou table (pas d escalade)

Page 70 Suivi des verrous V$_lock Addr Kaddr Sid Type Id1 Id2 Lmode Request Ctime Block Remarque : la commande lock permet de verrouiller explicitement.

Page 71 Niveaux d isolations Read committed Niveau par défaut SET TRANSACTION ISOLATION LEVEL READ COMMITTED ALTER SESSION SET ISOLATION_LEVEL READ COMMITTED; Serializable Garanti que les données lues sont les mêmes tout au long de la transaction. Aucune transaction concurrente. SET TRANSACTION ISOLATION LEVEL SERIALIZABLE ALTER SESSION SET ISOLATION_LEVEL SERIALIZABLE Lecture seule N autorise aucune écriture sur les données accédées. SET TRANSACTION READ ONLY

Page 72 Snapshot too old Les images avant sont conservées dans les RBS Les RBS sont limités en taille Les informations dans les RBS sont effacées cycliquement è il se peut que les données à lire soient effacées des RBS (car trop anciennes!) Solutions En amont : limiter la durée des transactions au strict utile ponctuer chaque ordre DML par Commit (sauf si transaction de plusieurs ordres) En aval : Augmenter la taille disponible pour les informations d annulations

Page 73 Deadlock Interblocage : plusieurs transactions ayant verrouillé des ressources attendent mutuellement la libérations des ressources des autres transactions Conséquences : Oracle tue l ordre bloquant d une transaction Une trace est écrite dans le dossier pointé par USER_DUMP_DEST Une exception est levée pour la transaction tuée (ORA-60) La transaction doit être Rollbakée et rejouée Les autres transactions se poursuivent Conseils Plus les transactions sont courtes moins le deadlock est probable Organiser les transactions pour quelle utilisent les ressources dans le même ordre 1. Relationnel (parent-enfant) 2. Alphabétique (client ; adr_facture ; adr_livraison) 3. Dans l ordre des lignes (order by) Prévoir, dans le code, la re-tentative

Page 74 Exercice Lancez 2 consoles clientes (connect scott/tiger@emm) Vérification de la cohérence Deadlock Console 1 : modifiez une ligne de la table emp Console 2 : affichez toutes les lignes de emp Console 1 : Commit; Console 2 : affichez toutes les lignes de emp Console 1 : modifiez le salaire de MARTIN Console 2 : modifiez la commission de SMITH Console 1 : modifiez le salaire de SMITH Console 2 : modifiez la commission de MARTIN

Page 75

Page 76 Outils graphiques Database control Enterprise manager Différents assistants

Page 77 Outils d import / export Nouveaux programmes : impdp et expdp Remplacent imp et exp Depuis et vers 9.2 et supérieur Utilisent le package DBMS_DATAPUMP Peut utiliser une «table externe» Imp et Exp Existent toujours

Page 78 SQL*loader Contient la source Décrit la source et la destination Journalisation Reçoit les lignes en erreur (bad) Reçoit les lignes non retenues

Page 79 Dbverify : Vérification de l intégrité physique Vérification des blocs d un fichier de données Vérification d un segment