Business">
4 Chap4
4 Chap4
4 Chap4
Chapitre 4
Notion de tablespace
Gestion des utilisateurs et droit d’accès
Vues
Dictionnaire de données
FSTF-LL-INFO
FSTF-LL-INFO
1
16/11/2021
Remarque: un espace logique peut être supprimé (avec DROP TABLESPACE) à la condition qu’il
soit vidé de toute donnée.
FSTF-LL-INFO
• L’administrateur réseau (qui peut être le DBA) se charge de la configuration des couches client pour les accès
distants.
• Les développeurs qui conçoivent et mettent à jour la base. Ils peuvent aussi agir sur leurs objets (création et
modification des tables, index, séquences, etc.). Ils transmettent au DBA leurs demandes spécifiques (stockage,
optimisation, sécurité).
• Les utilisateurs qui se connectent et interagissent avec la base à travers les applications ou à l’aide d’outils
(interrogations pour la génération de rapports, ajouts, modifications ou suppressions d’enregistrements).
FSTF-LL-INFO
2
16/11/2021
FSTF-LL-INFO
FSTF-LL-INFO
3
16/11/2021
Remarque:
Aucune donnée d’aucune table que l’utilisateur aura mis à jour durant
toutes ses connexions ne sera supprimée. Il n’y a pas de notion
d’appartenance d’objets (tables, index, procédure, etc.) à un utilisateur.
Tout ceci est relatif à la base de données (database).
FSTF-LL-INFO
FSTF-LL-INFO
4
16/11/2021
FSTF-LL-INFO
• Global level: privilèges s’appliquant à toutes les bases du serveur. Ces privilèges sont stockés dans la
table mysql.user ( GRANT CREATE ON *.*).
• Database level: privilèges s’appliquant à tous les objets d’une base de données en particulier. Ces
privilèges sont stockés dans les tables mysql.db et mysql.host (exemple GRANT SELECT ON bd1.*).
• Table level : privilèges s’appliquant à la globalité d’une table d’une base de données en particulier. Ces
privilèges sont stockés dans la table mysql.tables_priv (exemple d’attribution d’un privilège table :
GRANT INSERT ON bd1.Etudiant).
• Column level : privilèges s’appliquant à une des colonnes d’une table d’une base de données en
particulier. Ces privilèges sont stockés dans la table mysql.columns_priv
(exemple: GRANT UPDATE(nom)ON bd1.Etudiant).
• Routine level : privilèges globaux ou au niveau d’une base (CREATE ROUTINE, ALTER ROUTINE, EXECUTE,
et GRANT) s’appliquant aux procédures cataloguées. Ces privilèges sont stockés dans la table
mysql.procs_priv de la base mysql (exemple : GRANT EXECUTE ON PROCEDURE bd1.pro1…).
FSTF-LL-INFO
5
16/11/2021
FSTF-LL-INFO
Privilèges objet (LMD) sur toutes les bases de données: la table user
SELECT Host, User, Select_priv, Insert_priv, Update_priv, Delete_priv
FROM mysql.user where user ='root';
FSTF-LL-INFO
6
16/11/2021
FSTF-LL-INFO
FSTF-LL-INFO
7
16/11/2021
FSTF-LL-INFO
Exemple:
FSTF-LL-INFO
8
16/11/2021
FSTF-LL-INFO
• REVOKE ALTER,INSERT,UPDATE(adresse)
ON bd1.client FROM ‘user1'@'localhost';
Privilège objet table level : user1ne peut plus modifier la structure (ou les
contraintes), insérer et modifier la colonne adresse de la table client contenue dans
la base bd1. FSTF-LL-INFO
9
16/11/2021
FSTF-LL-INFO
FSTF-LL-INFO
10
16/11/2021
Notion de rôle
Un rôle (role) est un ensemble nommé de privilèges (système ou
objets). Un rôle est accordé à un ou plusieurs utilisateurs ou à un autre
rôle. Ce mécanisme facilite la gestion des privilèges.
Syntaxe pour créer un rôle:
CREATE ROLE [IF NOT EXISTS] nom_role [,nom_role ...];
FSTF-LL-INFO
Rôle
• les rôles permettent d’associer facilement un ensemble de privilèges
à des utilisateurs classés par catégories.
• La chronologie des actions à entreprendre pour travailler avec des
rôles est la suivante :
1. Définir des catégories d’utilisateurs;
2. créer un rôle (avec CREATE ROLE) pour chaque catégorie ;
3. alimenter le rôle avec des privilèges système ou objets (avec GRANT) ;
4. attribuer le rôle à d’autres rôles ou à des utilisateurs selon leur catégorie (avec GRANT) ;
5. faire évoluer le rôle dans le temps en ajoutant ou en enlevant des privilèges (avec GRANT
ou REVOKE).
FSTF-LL-INFO
11
16/11/2021
FSTF-LL-INFO
12
16/11/2021
FSTF-LL-INFO
13
16/11/2021
Les vues
• Dans la majorité des SGBD, la confidentialité est renforcée par l’utilisation de
vues (views) qui agissent comme des fenêtres sur la base de données.
• Les vues correspondent à ce qu’on appelle « le niveau externe » qui reflète la
partie visible de la base de données pour chaque utilisateur.
• Une vue est considérée comme une table virtuelle car elle n’a pas d’existence
propre. Seule sa structure est stockée dans le dictionnaire. Ses données seront
extraites de la mémoire à partir des tables source, à la demande.
• Une vue est créée à l’aide d’une instruction SELECT appelée « requête de
définition ». Cette requête interroge une (ou plusieurs) table(s) ou vue(s). Une
vue se recharge chaque fois qu’elle est interrogée.
FSTF-LL-INFO
FSTF-LL-INFO
14
16/11/2021
FSTF-LL-INFO
Vue modifiable
Pour qu’une vue soit modifiable (possibilité d’effectuer des
modification des données avec update ou insert), sa requête de
définition doit respecter les critères suivants :
• pas de directive DISTINCT, de fonction (AVG, COUNT, MAX, MIN, SUM,
ou VARIANCE), d’expression dans le SELECT ;
• pas de GROUP BY, ORDER BY ou HAVING.
FSTF-LL-INFO
15
16/11/2021
Exemple:
• Création de la vue: • Ajout d’un pilote
FSTF-LL-INFO
16
16/11/2021
FSTF-LL-INFO
FSTF-LL-INFO
17
16/11/2021
Dictionnaire de données
Le dictionnaire des données (metadata ou data dictionary) est une partie
majeure d’une base de données MySQL qu’on peut assimiler à une structure
centralisée.
Selon la version de MySQL, le dictionnaire des données est composé d’une
vingtaine à une quarantaine de vues (issues de tables système non visibles).
Les versions antérieures à 5.0 (3.23, 4.0 et 4.1) ne mentionnaient même pas
ces vues dans la documentation. Depuis la version 5, chaque nouvelle version
du serveur apporte son lot de nouveautés notamment concernant le moteur
de stockage InnoDB (18 vues en version 5.0, 40 en version 5.5, une
soixantaine en version 5.7).
Ces vues, qui sont appelées tables par abus de langage dans la documentation
officielle sont situées dans la base INFORMATION_SCHEMA. Elles permettent
de stocker toute information décrivant tous les objets contenus dans toute
base de données.
FSTF-LL-INFO
Contenu
Le dictionnaire des données contient :
• la définition des tables, vues, index, séquences, procédures, fonctions et
déclencheurs ;
• la description de l’espace disque alloué et occupé par chaque objet ;
• les valeurs par défaut des colonnes (DEFAULT) ;
• la description des contraintes d’intégrité référentielle, de vérification;
• le nom des utilisateurs de la base ;
• les privilèges pour chaque utilisateur ;
• des informations d’audit (accès aux objets) et d’autre(commentaires, par
exemple).
FSTF-LL-INFO
18
16/11/2021
FSTF-LL-INFO
FSTF-LL-INFO
19
16/11/2021
FSTF-LL-INFO
La commande SHOW
• La commande SHOW permet d’extraire facilement des informations
provenant du dictionnaire des données.
SHOW TABLES;
SHOW TABLES FROM parc;
SHOW CREATE TABLE parc.Installer;
SHOW DATABASES;
SHOW PRIVILEGES;
SHOW GRANTS FOR ‘user1'@'localhost';
...
FSTF-LL-INFO
20