Distinction création utilisateur / ajout de permissions dans la section TL;DR

This commit is contained in:
whirigoyen 2024-01-31 16:52:09 +01:00
parent 3dbced07fe
commit e1d2ab2afd

View file

@ -416,13 +416,13 @@ Changer dynamiquement la valeur d'une variable de configuration :
**Attention :**
* Les permissions et mots de passe ne sont pas spécifiques à un utilisateur, mais à un triplet utilisateur/hôte/base.
* Par défaut, on utilisera l'hôte `localhost`.
* **Les permissions et mots de passe ne sont pas spécifiques à un utilisateur, mais à un couple utilisateur/hôte.**
* Par défaut, utiliser l'hôte `localhost`. Pour autoriser l'utilisateur à se connecter à partir de n'importe où, utiliser le wildcard `%`.
**Lister** les utilisateurs :
~~~{.sql}
> SELECT host, user FROM mysql.user [WHERE db=<BD_NAME> ORDER BY user];
> SELECT host, user, password FROM mysql.user [WHERE db=<BD_NAME> ORDER BY user];
~~~
**Lister** les privilèges dun utilisateur/hôte :
@ -431,17 +431,32 @@ Changer dynamiquement la valeur d'une variable de configuration :
> SHOW GRANTS FOR <USER>@<HOST>;
~~~
**Ajouter** un accès utilisateur/hôte avec tous les droits sur une base :
**Créer** un utilisateur/hôte :
~~~{.sql}
# Si on connaît le mot de passe
> GRANT ALL PRIVILEGES ON <DB_NAME>.* TO <USER>@<HOST> IDENTIFIED BY '<PASSWORD>';
# En réutilisant le hash d'un mot de passe non connu (obtenu plus haut avec SHOW GRANTS)
> GRANT ALL PRIVILEGES ON <DB_NAME>.* TO <USER>@<HOST> IDENTIFIED BY PASSWORD '<HASH>';
CREATE USER <USER>@<HOST> IDENTIFIED BY '<PASSWORD>';
~~~
**Note :** si on veut créer un utilisateur et une base du même nom, on préfèrera la commande shell `mysqladmin create <NAME>`.
**Note :** si on veut créer un utilisateur et une base du même nom, on préférera la commande shell `mysqladmin create <NAME>`.
Pour autoriser un utilisateur existant à se connecter à partir d'un autre hôte (ou de `%`), réutiliser le hash de son mot de passe :
~~~{.sql}
> SELECT host, user, password FROM mysql.user WHERE user LIKE '<USER>';
> CREATE USER <USER>@<HOST2> IDENTIFIED BY PASSWORD '<HASH>';
~~~
Donner **tous les privilèges** sur une base à un utilisateur/hôte :
~~~{.sql}
> GRANT ALL PRIVILEGES ON <DB_NAME>.* TO <USER>@<HOST>;
~~~
Changer le **mot de passe** d'un utilisateur :
~~~{.sql}
> SET PASSWORD FOR <USER>@<HOST> = PASSWORD('<PASSWORD>');
~~~
**Révoquer** les accès d'un utilisateur/hôte à une base (attention un utilisateur peut avoir des permissions avec plusieurs hôtes !) :