Bonjour,
J'ai créer un nom d'utilisateur qui n'a que des droits de lecture sur ma base.
Mes clients ayant besoin de se connecter directement sur ma base, ont cet identifiant pour se connecter (c est le meme pour tous les clients).
Le probleme c'est qu'ils ne peuvent pas se connecter sur ma base, il faut d'abord que j'autorise leur serveur a acceder à mon serveur mysql en ajoutant leur ip en host.
J'ai trouvé comment faire en SSH, mais ne peux on pas automatiser la tache avec un script php?
Pour la solution SSH :
1. Accorder des droits à un nom d'utilisateur
Pour ce faire, vous aurez besoin d'accorder les droits nécessaire à un utilisateur MySQL afin que celui-ci ait les droits sur la base autre part que sur le serveur hébergeant la base (localhost). Pour ce faire, tapez la commande suivante (une fois connecté à la console en SSH) :
grant all privileges on *.* to remoteuser@123.123.123.123 identified by "userpassword";
Où:
*.* désigne la ou les bases qui sont autorisées (* signifie toutes, mais vous pouvez n'en choisir qu'une seule si vous le souhaitez),
remoteuser est le nom de l'utilisateur MySQL à qui vous accordez l'accès à distance,
123.123.123.123 est l'adresse IP du serveur distant auquel vous donné l'accès (ceci peut être replacé par * pour TOUS les serveurs),
userpassword est le mot de passe associé à l'utilisateur MySQL en question
Une fois que c'est fait, n'oubliez pas de "flush" les privilèges. Cette commande fait en sorte que les modifications soient immédiatement effectives, sans avoir à redémarrer le serveur:
flush privileges;
2. éditer my.cnf
Editez le fichier de configuration:
nano /etc/mysql/my.cnf
Par défaut, MySQL n'écoute que localhost. . Il faudra désactiver la ligne relative au bind-address dans le fichier de configuration mysql:
3. redémarrer le serveur MySQL
/etc/init.d/mysql restart
Partager