afficher les connexions au serveur (notez que %
signifie n'importe quel hôte ou caractère générique)
select user,host from mysql.user;
+-----------+------------+
| user | host |
+-----------+------------+
| ajax_guy | % |
| joe7 | % |
| joe8 | % |
+-----------+------------+
montrer quelles subventions existent pour un certain utilisateur.
show grants for 'ajax_guy'@'%';
+----------------------------------------------------------------------
| Grants for [email protected]%
+----------------------------------------------------------------------
| GRANT USAGE ON *.* TO 'ajax_guy'@'%' IDENTIFIED BY PASSWORD ...
| GRANT ALL PRIVILEGES ON `ajax_stuff`.* TO 'ajax_guy'@'%'
| GRANT ALL PRIVILEGES ON `ajax_stuff`.`ajax_stuff` TO 'ajax_guy'@'%'
+----------------------------------------------------------------------
Comment accorder l'accès à une certaine base de données à une certaine connexion. Ci-dessous, nous accordons tous les droits à l'utilisateur sur le so_gibberish
base de données .
grant ALL on so_gibberish.* to 'ajax_guy'@'%';
Regardez les subventions en vigueur maintenant pour cette connexion
+----------------------------------------------------------------------
| Grants for [email protected]%
+----------------------------------------------------------------------
| GRANT USAGE ON *.* TO 'ajax_guy'@'%' IDENTIFIED BY PASSWORD ...
| GRANT ALL PRIVILEGES ON `ajax_stuff`.* TO 'ajax_guy'@'%'
| GRANT ALL PRIVILEGES ON `so_gibberish`.* TO 'ajax_guy'@'%'
| GRANT ALL PRIVILEGES ON `ajax_stuff`.`ajax_stuff` TO 'ajax_guy'@'%'
+----------------------------------------------------------------------
Créer un nouveau login drew_saturday
avec un mot de passe friday987
.Il a tous les privilèges sur la base de données so_gibberish
et peut se connecter depuis n'importe quel hôte (%
)
grant ALL on so_gibberish.* to 'drew_saturday'@'%' IDENTIFIED BY 'friday987';
select user,host,password from mysql.user where user='drew_saturday';
+---------------+------+-------------------------------------------+
| user | host | password |
+---------------+------+-------------------------------------------+
| drew_saturday | % | *4600ED0F377308959665877BD327D4788DC2071F |
+---------------+------+-------------------------------------------+
Soit dit en passant, le mot de passe ci-dessus est le mot de passe haché.
Remarque :pour MySQL 5.7, la commande ci-dessus serait :
select user,host,authentication_string from mysql.user where user='drew_saturday';
Page de manuel Mysql sur Grant
. N'accordez pas de droits excessifs aux utilisateurs utilisant grant ALL on *. ...
. Ce serait pour tous base de données dans le système. Il suffit de lire le manuel et moins c'est plus.
Parfois, les administrateurs souhaitent accorder l'accès à une poignée de tables d'une base de données (pas à toutes les tables) à une connexion. Le manuel est une lecture incontournable à ce sujet.
Et une dernière chose. 'drew_saturday'@'%' est une connexion différente de 'drew_saturday'@'NOT-local' (empruntant à votre titre). Ce sont des logins différents avec des droits différents. C'est le point de la première chose que j'ai écrite là-haut.