Mysql
 sql >> Base de données >  >> RDS >> Mysql

Pourquoi un GRANT USAGE est-il créé la première fois que j'accorde des privilèges à un utilisateur ?

Comme vous l'avez dit, dans MySQL USAGE est synonyme de "pas de privilèges". À partir du Manuel de référence MySQL :

USAGE est un moyen d'indiquer à MySQL qu'un compte existe sans conférer de véritables privilèges à ce compte. Ils ont simplement la permission d'utiliser le serveur MySQL, d'où USAGE . Il correspond à une ligne dans le `mysql`.`user` table sans privilèges définis.

Le IDENTIFIED BY La clause indique qu'un mot de passe est défini pour cet utilisateur. Comment savons-nous qu'un utilisateur est celui qu'il prétend être ? Ils identifient eux-mêmes en envoyant le mot de passe correct pour leur compte.

Le mot de passe d'un utilisateur est l'un de ces attributs de compte de niveau global qui n'est pas lié à une base de données ou à une table spécifique. Il vit également dans le `mysql`.`user` table. Si l'utilisateur n'a pas d'autres privilèges ON *.* , ils reçoivent USAGE ON *.* et leur hachage de mot de passe y est affiché. Ceci est souvent un effet secondaire d'un CREATE USER déclaration. Lorsqu'un utilisateur est créé de cette manière, il n'a initialement aucun privilège, il se voit donc simplement accorder USAGE .