ADMIN SGBD TP 1. Préliminaires. Dictionnaire des données. Utilisateurs, vues et autorisations



Documents pareils
TP Contraintes - Triggers

Le langage SQL (première partie) c Olivier Caron

Bases de données et sites WEB

Application web de gestion de comptes en banques

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

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

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

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

Gestion de base de données

Création et Gestion des tables

Olivier Mondet

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

1. Base de données SQLite

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

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

Licence de MIDO - 3ème année Spécialités Informatique et Mathématiques Appliquées

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

Gestion des utilisateurs et de leurs droits

Le Langage De Description De Données(LDD)

TP3 : Creation de tables 1 seance

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

CREATION WEB DYNAMIQUE

I4 : Bases de Données

Pratique et administration des systèmes

Encryptions, compression et partitionnement des données

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

Bases de données relationnelles

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

Cours: Administration d'une Base de Données

La replication dans PostgreSQL

Manuel utilisateur (Manuel_utilisateur_version pdf) Manuel Reprise des données (Manuel_Reprise_donnees_version

Intégrité des données

Compétences Business Objects

Historisation des données

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

I. MySQL : Serveur et SGBD

Le protocole FTP (File Transfert Protocol,

Langage SQL : créer et interroger une base

PHP 4 PARTIE : BASE DE DONNEES

Chapitre 3 LE MODELE RELATIONNEL ET SQL (DDL)

Accéder à PostgreSQL par JDBC via un tunnel SSL Java

PHP et les Bases de données - Généralités

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

Sommaire. Etablir une connexion avec une base de données distante sur PostGreSQL

Tests de performance du matériel

Serveur Linux : FTP. Mise en place d un service FTP sous Linux. Bouron Dimitri 20/04/2014

Auto-évaluation Oracle: cours de base

Administration des bases de données relationnelles Part I

Intégrité sémantique dans les bases de données relationnelles

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

Comprendre les bases de données

A QUOI SERVENT LES BASES DE DONNÉES?

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

OpenPaaS Le réseau social d'entreprise

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

GUIDE D INSTALLATION DE L APPLICATION GECOL SUR

Ora2Pg Performances. (C) 2013 Gilles Darold

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

Architecture de la plateforme SBC

Structured Query Language

1 Démarrage de Marionnet

TD : Requêtes SQL (BDR.TD2-1) INSA 3IF

TP Bases de données réparties

Pour les débutants. langage de définition des données

Exécution de PCCOMPTA à distance sous Terminal Server 2003.

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

WEBMESTRE : CONCEPTION DE SITES ET ADMINISTRATION DE SERVEURS WEB

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

Sauvegarde et Restauration d un environnement SAS

BASES DE DONNEES TP POSTGRESQL

Procédure d'installation de PostgreSQL pour Windows

Structure fonctionnelle d un SGBD

Réplication logique avec PostgreSQL 9.4

Principales failles de sécurité des applications Web Principes, parades et bonnes pratiques de développement

Introduction au Système de Gestion de Base de Données et aux Base de Données

BTS SIO option SISR Lycée Godefroy de Bouillon Clermont-Ferrand

CHAPITRE 1 ARCHITECTURE

Plan. Bases de Données. Sources des transparents. Bases de SQL. L3 Info. Chapitre 4 : SQL LDD Le langage de manipulation de données : LMD

SQL Data Export for PS/PSS

Exemple de configuration ZyWALL USG

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

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

Les BASES de DONNEES dans WampServer

Classe et groupe : 1P 3 SEN TRI. Ubuntu : serveur Contrôleur de Domaine (PDC) avec SAMBA

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

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

Bases de données avancées

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

MODE OPERATOIRE CORIM PROGRESS / SECTION MEI. Exploitation Informatique

Guide de mise à jour BiBOARD

PHP et mysql. Code: php_mysql. Olivier Clavel - Daniel K. Schneider - Patrick Jermann - Vivian Synteta Version: 0.9 (modifié le 13/3/01 par VS)

TP n 2 : Installation et administration du serveur ProFTP. Partie 1 : Fonctionnement du protocole FTP (pas plus de 15min)

EJBCA PKI Open Source

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

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

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.

COURS 5 Mettre son site en ligne! Exporter son site avec WordPress Duplicator Installer un logiciel FTP Faire le suivi des visites de son site avec

Transcription:

ADMIN SGBD TP 1 Préliminaires L'objectif de ce TP est de: installer l environnement (PostgreSQL, base, tables), créer des utilisateurs, des vues, et de gérer les privilèges, créer des triggers, utiliser des paramètres d'initialisation. Il faut installer PostgreSQL. Voici une liste de commandes utiles pour la suite du TP. Description Commande Aide SQL \h Aide sur les commandes \ \? Description d une table Redirection sortie Exécution d un script Nom, type et propriétaire des tables dans la base \d nomtable \o nomfichier \i nomfichier \d Quitter PostgreSQL \q Charger la table PAYS grâce au fichier pays.sql. Dictionnaire des données 1.1 Combien d index sont définis sur la table PAYS? 1.2 Y-a-t-il une création d index dans le fichier pays.sql? Pourquoi PostgreSQL crée-t-il un index? 1.3 Créer un second index sur le champ PAYS.population en utilisant SQL. Donner la requête qui permet de vérifier que l index a été crée et ses propriétés. 1.4 Exécuter l instruction SQL suivante: ANALYZE Pays; 1.5 Écrire les commandes qui permettent d analyser la table PAYS, et d afficher le nombre de n- uplets et de pages utilisés par la table PAYS (on pourra s intéresser à la table pg_class). 1.6 Comment donneriez-vous la liste des vues systèmes? 1.7 En utilisant une des vues obtenue ci-dessus, donner les statistiques de chaque champ de la table PAYS. Quel est l attribut qui permet de connaître le nombre de valeurs différentes dans PAYS? 1.8 Toujours en utilisant une vue système, donner les informations concernant les index de la table PAYS. Utilisateurs, vues et autorisations 2.1 Créer deux autres utilisateurs. Vous leur donnerez un nom, et vous indiquerez qui est l utilisateur A (vous), l utilisateur B, et l utilisateur C. 2.2 Créer les tables FILM, ACTEUR, et CASTING en utilisant les fichiers film.sql, acteur.sql, et casting.sql.

2.3 Donner la commande qui permet de créer un groupe TP1 qui regroupe les trois utilisateurs. Donner la commande qui vous permet de lister les utilisateurs appartenant à un groupe donné. 2.4 Dans PostgreSQL, on peut affecter 5 types de droit à un utilisateur ou à un groupe (r pour SELECT, a pour INSERT, w pour UPDATE, d pour DELETE, x pour REFERENCES, R pour les RULE, t pour les trigger, C pour CREATE, X pour EXECUTE, U pour USAGE, et all pour posséder rawdxtcxur). Quelle commande utilisez-vous pour créer une vue FILM_VUE sur la table FILM, et pour accorder sur cette vue les droits de lecture au groupe que vous avez créé en 2.3? On vérifiera les droits à l aide de la commande \z FILM. 2.5 Ouvrir trois terminaux simulant les trois utilisateurs. 2.6 Créer les tables suivantes sous le compte de l utilisateur A: XX désigne les initiales de votre prénom et votre nom. Par exemple, Jean Martin créera les tables FILMJM, ACTEURJM, et CAS- TINGJM. CREATE TABLE acteurxx (id INTEGER NOT NULL, nom VARCHAR(35), PRIMARY KEY (id)); CREATE TABLE filmxx (id INTEGER NOT NULL, titre VARCHAR(70), annee DECIMAL(4), note FLOAT, votes INTEGER, realisateur INTEGER, PRIMARY KEY (id)); CREATE TABLE castingxx ( filmid INTEGER NOT NULL, acteurid INTEGER NOT NULL, ord INTEGER, PRIMARY KEY (filmid, acteurid), FOREIGN KEY (filmid) REFERENCES filmxx(id), FOREIGN KEY (acteurid) REFERENCES acteurxx(id)); Insérer les données suivantes dans FILMXX (inutile de peupler les autres tables). INSERT INTO filmxx SELECT * FROM film WHERE annee > 1997; COMMIT; On suppose que vous êtes l utilisateur A. Donner les instructions SQL permettant de répondre aux questions suivantes: 2.6.1" l utilisateur A donne les droits à l utilisateur B d accèder à toutes les informations concernant les films réalisés en 2001 et 2002. 2.6.2" l utilisateur A donne les droits aux utilisateurs B et C pour qu ils puissent accèder à toutes les informations concernant les films réalisés en 2003. 2.6.3" l utilisateur A autorise l utilisateur B à rechercher, supprimer ou mettre à jour les informations de la table FILM excepté la note. 2.6.4" l utilisateur A autorise l utilisateur B à rechercher et insérer toutes les informations concernant un film, et à transmettre ses droits aux autres utilisateurs. Par exemple, quelle est la commande qui lui permet à B de donner ses droits à l utilisateur C? L utilisateur A (vous) annule les droits de l utilisateur B. Que se passe-t-il pour C? 2.6.5" l utilisateur A autorise l utilisateur B à rechercher et insérer toutes les informations concernant un film, et à transmettre ses droits. L utilisateur B donne ses privilèges à l utilisateur C en lui permettant de transmettre ses droits. Ainsi, l utilisateur C accorde ses privilèges à l utilisateur B. Maintenant, l utilisateur A (vous) annule tous les privilèges à l utilisateur B. B peut-il encore insérer des films dans FILMXX?

Triggers On va utiliser la table FILMXX de l exercice précédent. 1. Création des triggers On suppose que FILMXX est une table importante, et on souhaite surveiller son utilisation, et en particulier les modifications sur la note (INSERT, DELETE, UPDATE). On va créer en premier lieu une table FILM_AUDIT. create table film_audit (! quand date,! utilisateur varchar(10),! action varchar(10),! filmid float(15),! anc_note float(15),! nouv_note float(15) ); Donner ensuite le code SQL des trois règles permettant de surveiller les modifications de FILM.note, et de placer les informations dans la table FILM_AUDIT. Conseils: on utilisera la création de règle de PostgreSQL (CREATE RULE). on utilisera les fonctions now() et user() pour connaître l instant et l utilisateur. on utilisera les valeurs old.att et new.att pour référencer les anciennes et nouvelles valeurs d un attribut att. 2. Test des triggers On travaillera avec un utilisateur créé précédemment. On lui donnera les droits de modification sur la table FILMXX. Quelles sont les commandes nécessaires pour voir les traces des modifications de l attribut note. On donnera le contenu de la table FILM_AUDIT après quelques tests que vous expliciterez. Configuration de base 1. Installation Une fois PostgreSQL compilé et installé, vous devez créer un compte postgres. Sous ce compte, il faut créer la base dont vous allez vous servir. [galibier]# su - postgres bash$ createdb asrall Ensuite, vous démarrez la base: pg_ctl -D /usr/local/pgsql/data start Vous vous connectez à une session postgresql psql -d asrall -U postgres Vous créez votre compte utilisateur: create user olivier with password toto ; Puis vous vous connectez en tant qu utilisateur: psql -d asrall -U olivier 2. Configuration des accès PostgreSQL permet aux administrateurs de contrôler lees accès à la base. Les accès peuvent être autorisés étant donnés une base, un utilisateur, ou une adresse TCP/IP. Par défaut, PostgreSQL autorise uniquement l accès aux utilisateurs connectés à l ordinateur qui exécute le serveur. Pour activer l accès réseau, vous devez démarrer le serveur (postmaster) avec l option -i.

Les accès sont contrôlés grâce au fichier data/pg_hba.conf. Ce fichier contient plusieurs types de configuration: Local Les entrées locales contrôlent les accès pour les utilisateurs connectés sur la machine du serveur. Les options sont: trust, password, crypt, et reject. L option trust permet aux utilisateurs connecté à la machine de se connecter au serveur, l option password nécessite un mot de passe, l option crypt est équivalent à password mais le mot de passe est crypté, et reject rejète toutes les connexions à la base. Un exemple: local! all!!! trust host! all! 127.0.0.1! 255.255.255.255! trust Host et Hostssl Ces deux options permettent de contrôler les accès TCP/IP. On a les mêmes options que Local, plus les trois suivantes: ident pour utiliser un ident distant pour l authentification, krb4 pour utiliser une authentification Kerberos 4, et krb5 pour une authentification Kerberos 5. Ces options sont activées uniquement si l option -i a été utilisée lors du lancement de postmater. Un exemple: host! all! 192.168.34.0! 255.255.255.255! crypt host! ventes! 192.168.7.12! 255.255.255.255! ident Gestion personnalisée Par défaut, les mots de passe utilisés par password et crypt sont stockés dans la table pg_shadow. On peut éventuellement avec password surchager le mot de passe de pg_shadow. Par exemple: host! all! 192.168.34.0! 255.255.255.255! password mdprel utilise la relation mdprel pour authentifier les utilisateurs. Divers On peut fixer le nombre maximal de connexions grâce à la variable max_connections. On peut fixer un timeout pour la durée dédiée à l authentification d un utilisateur grâce à la variable authentification_timeout. 3. Arrêt du serveur On arrête le serveur proprement grâce à la commande: pg_ctl -D /usr/local/pgsql/data stop -m fast 4. Backup de la base Pour sauvegarder la base, on peut arrêter le serveur, et copier les fichiers du répertoire data/ afin de les dupliquer. On peut également sauvegarder une base active grâce à la commande pg_dumpall (pour toutes les bases), ou pg_dump (pour une base donnée). Les fichiers de configuration (comme pg_hba.conf par exemple) ne sont pas sauvegardés, donc il faut veiller à les inclure dans la sauvegarde. Par exemple, pour sauvegarder la base test, on écrira: pg_dump test > /tmp/test.dump. Pour restaurer la base, on utilisera les commandes suivantes: createdb newtest psql newtest > /tmp/test.dump

5. Surveillance Pour surveiller un serveur PostgreSQL, on peut utiliser l option -o de postmaster (cf prochaine séance). On peut également analyser les informations liées aux processus postgres et postmaster. Par exemple, un ps sur le processus postgres donnera des informations sur la charge du processeur, l utilisation de la mémoire, le temps d exécution, Par exemple, sur un système Unix, on peut avoir les informations suivantes: USER PID %CPU TIME STARTED VSZ INBLK OUBLK COMMAND postgres 18923 45.4 0:27.79 1:15PM 2140 34 1 /usr/local/postgres/ Cela signifie que le processus postgres utilise 45,4% du CPU, a utilisé 27 secondes du CPU, a démarré à 13h15, a lu 34 blocs (pages), et a écrit 1 bloc (page). Même si les informations sont moins complètes que celles pouvant être obtenues avec les outils d analyse de PostgreSQL, cela donne déjà une base d informations intéressantes.