Accéder au contenu principal
Documents
FonctionsExpressionsKeywordsDéclarationsClauses

Déclaration GRANT de MySQL

L'instruction GRANT de MySQL est utilisée pour attribuer des privilèges aux comptes d'utilisateurs MySQL. Il définit les opérations que les utilisateurs peuvent effectuer sur les objets de la base de données, tels que les tableaux et les vues, garantissant ainsi un accès contrôlé à la base de données.

Utilisation

L'instruction GRANT est utilisée lorsque vous devez accorder à des utilisateurs spécifiques des autorisations d'exécuter certains types d'opérations SQL. Il permet de gérer les droits des utilisateurs de manière efficace et sécurisée.

GRANT privileges
ON database_name.table_name
TO 'user'@'host'
[IDENTIFIED BY 'password'];

Dans cette syntaxe, privileges représente les autorisations accordées, database_name.table_name spécifie l'étendue, user est le nom d'utilisateur MySQL et host est l'emplacement à partir duquel l'utilisateur se connecte. Notez que la clause IDENTIFIED BY 'password' n'est applicable que lors de la création d'un nouvel utilisateur. Dans MySQL 8.0 et les versions ultérieures, il est généralement recommandé d'utiliser CREATE USER suivi de GRANT pour la création d'utilisateurs et l'attribution de privilèges.

Exemples

1. Octroi de privilèges de base

GRANT SELECT, INSERT
ON mydb.mytable
TO 'user1'@'localhost';

Cet exemple accorde les privilèges SELECT et INSERT sur mydb.mytable à user1 en se connectant à partir de localhost.

2. Octroi de tous les privilèges à une base de données

GRANT ALL PRIVILEGES
ON mydb.*
TO 'user2'@'192.168.1.1';

Ici, user2 se voit accorder tous les privilèges sur l'ensemble de la base de données mydb à partir de l'hôte 192.168.1.1.

3. Octroi de privilèges avec un mot de passe

GRANT SELECT, UPDATE
ON mydb.mytable
TO 'user3'@'%' IDENTIFIED BY 'securepassword';

Cette instruction accorde à SELECT et UPDATE des privilèges sur mydb.mytable à user3 à partir de n'importe quel hôte (%), en définissant un mot de passe spécifique. L'utilisation de % permet d'établir des connexions à partir de n'importe quel hôte, ce qui peut avoir des répercussions sur la sécurité.

Informations complémentaires

Privilèges globaux

Pour accorder des privilèges globaux qui s'appliquent à toutes les bases de données, utilisez la syntaxe ON *.*. Cela permet d'accorder globalement les privilèges spécifiés.

Révocation des privilèges

Pour révoquer des privilèges, utilisez la déclaration REVOKE:

REVOKE privileges
ON database_name.table_name
FROM 'user'@'host';

Cette opération supprime les privilèges spécifiés pour l'utilisateur.

Conseils et bonnes pratiques

  • Limitez les privilèges. N'accordez que les privilèges nécessaires aux utilisateurs afin de minimiser les risques de sécurité.
  • Utilisez des noms d'hôtes spécifiques. Dans la mesure du possible, spécifiez des noms d'hôtes ou des adresses IP pour restreindre l'accès, plutôt que d'utiliser % pour tous les hôtes.
  • Gérez vos mots de passe en toute sécurité. Utilisez toujours des mots de passe forts et uniques lorsque vous créez des comptes d'utilisateurs.
  • Révisez régulièrement les autorisations. Auditez et révoquez périodiquement les privilèges inutiles afin de maintenir une sécurité optimale. Utilisez le tableau mysql.user ou les vues du schéma d'information pertinent pour examiner les privilèges des utilisateurs existants.
  • Modifications du document. Conservez un registre de toutes les déclarations GRANT délivrées pour faciliter le suivi des autorisations.

Amélioration de SQL pour les débutants

Acquérir les compétences SQL pour interagir avec vos données et les interroger.
Commencez à apprendre gratuitement