Apprendre SQL avec MySQL Avec 40 exercices corrigés by Christian Soutou

Apprendre SQL avec MySQL Avec 40 exercices corrigés by Christian Soutou

Auteur:Christian Soutou [Soutou, Christian]
La langue: fra
Format: epub
Tags: Informatique
Éditeur: O'Reilly
Publié: 2006-03-02T15:04:22+00:00


4055_05_C05 Page 173 Jeudi, 2. mars 2006 2:04 14

> Apogee FrameMaker Noir

chapitre n° 5

Contrôle des données

un accès à Paul, en précisant l’adresse de la machine client, et lui attribue un droit d’extrac-

tion de la table Livre sur la base bdPaul.

CREATE USER [email protected] IDENTIFIED BY 'pauldistant';

GRANT SELECT ON bdpaul.Livre TO 'Paul'@'192.168.4.173';

Figure 5-5 Accès distant par l’interface de commande MySQL

TCP-IP

192.168.4.118

Paul

192.168.4.173

root@localhost

root

Paul@localhost

bdpaul

[email protected]

mysql

...

Livre

mysql

...

Connexion par l’interface de commande

Sur le client, Paul se connecte au serveur dans une fenêtre de commande, en précisant

l’adresse de la machine serveur, puis donne son mot de passe distant. Pensez à enlever les

pare-feu Windows sur le client et le serveur (bloquant le port 3306).

mysql -h 192.168.4.118 -u Paul -p

Paul peut, à présent seulement, interroger la table distante, comme le montre la copie d’écran

suivante :

Figure 5-6 Interrogation distante par l’interface de commande MySQL

Table mysql.host

La table mysql.host est utilisée conjointement avec mysql.db et concerne les accès

distants (plusieurs machines). Cette table n’est employée que pour les prérogatives au niveau

© Éditions Eyrolles

173

4055_05_C05 Page 174 Jeudi, 2. mars 2006 2:04 14

> Apogee FrameMaker Noir

Partie I

SQL de base

database, indépendamment des utilisateurs. La structure est la même que celle de mysql.db,

à l’exception de la colonne User qui n’est pas présente. Le couple de colonnes (Host, Db)

est unique.

Tableau 5-9 Tables pour les accès distants

Signification pour mysql.db

Signification pour mysql.host

Caractère

colonne Host

colonne Db

colonne Host

colonne Db

%

toute machine

toute base

toute machine

toute base

' ' (chaîne

consultez la table

toute base

toute machine

toute base

vide)

mysql.host

MySQL lit et trie les tables db (sur les colonnes Host, Db et User) et host (sur les colonnes

Host et Db) en même temps qu’il parcourt la table user. Pour les opérations relatives aux

bases (INSERT, UPDATE, etc.), MySQL interroge la table user. Si l’accès n’y est pas décrit,

la recherche se poursuit dans les tables db et host. Si la colonne Host de la table db est

renseignée en fonction de l’accès, l’utilisateur reçoit ses privilèges.

Si la colonne Host de la table db n’est pas renseignée (' '), cela signifie que la table host

énumère les machines qui sont autorisées à accéder à une base de données en particulier. Si la

machine ne correspond pas, l’accès n’est pas permis. Dans le cas contraire, les privilèges sont

valués à 'Y' à partir d’une intersection (et pas d’une union) entre les tables db et host sur le

couple (Host, Db).

La table mysql.host n’est mise à jour ni par GRANT, ni par REVOKE. Il faudra directement insé-

rer (par INSERT), modifier (par UPDATE) ou supprimer (par DELETE) les lignes de cette table.

Elle n’est pas utilisée par la plupart des serveur MySQL, car elle est dédiée à des usages très

spécifiques (pour gérer un ensemble de machines à accès sécurisé, par exemple). Elle peut

aussi être utilisée pour définir un ensemble de machines à accès non sécurisé.

En supposant que vous déclariez une machine à accès non sécurisé : camparols.gtr.fr. Il

est possible d’autoriser l’accès sécurisé à toutes les autres machines du réseau local. Ceci en

ajoutant des enregistrements par INSERT dans la table mysql.host comme suit :

+------------------+----+----------------------------

| Host | Db | ...

+------------------+----+-----------------------------

| camparols.gtr.fr | % | ( tous les privilèges à 'N')

| %.gtr.fr | % | ( tous les privilèges à 'Y')

+------------------+----+-----------------------------

Vous déclareriez l’inverse des conditions initiales en remplaçant les 'N' par des 'Y', et récipro-

quement.



Télécharger



Déni de responsabilité:
Ce site ne stocke aucun fichier sur son serveur. Nous ne faisons qu'indexer et lier au contenu fourni par d'autres sites. Veuillez contacter les fournisseurs de contenu pour supprimer le contenu des droits d'auteur, le cas échéant, et nous envoyer un courrier électronique. Nous supprimerons immédiatement les liens ou contenus pertinents.