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

Autoriser toutes les connexions à distance, MySQL

Comme l'a souligné Ryan ci-dessus, la commande dont vous avez besoin est

GRANT ALL ON *.* to [email protected]'%' IDENTIFIED BY 'password'; 

Cependant, notez que la documentation indique que pour que cela fonctionne, un autre compte utilisateur de localhost doit être créé pour le même utilisateur ; sinon, le compte anonyme créé automatiquement par mysql_install_db est prioritaire car il a une colonne d'hôte plus spécifique.

En d'autres termes; dans l'ordre pour l'utilisateur user pouvoir se connecter depuis n'importe quel serveur; 2 comptes doivent être créés comme suit :

GRANT ALL ON *.* to [email protected] IDENTIFIED BY 'password'; 
GRANT ALL ON *.* to [email protected]'%' IDENTIFIED BY 'password'; 

Lisez la documentation complète ici.

Et voici la pièce pertinente pour référence :

Après vous être connecté au serveur en tant que root, vous pouvez ajouter de nouveaux comptes. Les instructions suivantes utilisent GRANT pour configurer quatre nouveaux comptes :

mysql> CREATE USER 'monty'@'localhost' IDENTIFIED BY 'some_pass';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'localhost'
    ->     WITH GRANT OPTION;
mysql> CREATE USER 'monty'@'%' IDENTIFIED BY 'some_pass';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'%'
    ->     WITH GRANT OPTION;
mysql> CREATE USER 'admin'@'localhost';
mysql> GRANT RELOAD,PROCESS ON *.* TO 'admin'@'localhost';
mysql> CREATE USER 'dummy'@'localhost';

Les comptes créés par ces relevés ont les propriétés suivantes :

Deux des comptes ont un nom d'utilisateur monty et un mot de passe some_pass. Les deux comptes sont des comptes de superutilisateur avec tous les privilèges pour faire quoi que ce soit. Le compte 'monty'@'localhost' ne peut être utilisé que lors de la connexion à partir de l'hôte local. Le compte 'monty'@'%' utilise le caractère générique '%' pour la partie hôte, il peut donc être utilisé pour se connecter depuis n'importe quel hôte.

Il est nécessaire d'avoir les deux comptes pour monty pour pouvoir se connecter de n'importe où comme monty . Sans le compte localhost, le compte d'utilisateur anonyme pour localhost créé par mysql_install_db serait prioritaire lorsque monty se connecte à partir de l'hôte local. Par conséquent, monty serait traité comme un utilisateur anonyme. La raison en est que le compte de l'utilisateur anonyme a une valeur de colonne Host plus spécifique que le compte 'monty'@'%' et vient donc plus tôt dans l'ordre de tri de la table des utilisateurs. (le tri des tables d'utilisateurs est abordé dans la Section 6.2.4, « Contrôle d'accès, étape 1 :vérification de la connexion ».)