Je peux facilement accorder l'accès à une adresse IP en utilisant ce code:
$ mysql -u root -p
Enter password:
mysql> use mysql
mysql> GRANT ALL ON *.* to root@'192.168.1.4' IDENTIFIED BY 'your-root-password';
mysql> FLUSH PRIVILEGES;
Mais je dois autoriser tout le sous-réseau 192.168.1. * À accéder à distance à la base de données.
Comment puis je faire ça?
Il semble que vous pouvez également utiliser un masque de réseau , par exemple
GRANT ... TO 'user'@'192.168.0.0/255.255.255.0' IDENTIFIED BY ...
la source
192.160.0.34/255.255.255.0
est le même que192.168.0.34/24
ce qui n'a pas vraiment de sens (/24
signifie que le dernier nombre peut être de 0 à 255, en ignorant votre valeur de 34). Cela fonctionne-t-il si vous utilisez un masque valide pour l'adresse IP, comme192.168.0.34/255.255.255.252
?Vous utiliseriez simplement '%' comme joker comme ceci:
GRANT ALL ON *.* to root@'192.168.1.%' IDENTIFIED BY 'your-root-password';
la source
mysql> GRANT ALL ON *.* to root@'192.168.1.%' IDENTIFIED BY 'your-root-password';
Le caractère générique est un "%" au lieu d'un "*"
la source
Juste une note d'une particularité à laquelle j'ai été confronté:
Considérez:
Si vous avez un utilisateur défini dans mysql.user comme
'user'@'192.168.0.102'
avec password1 et un autre'user'@'192.168.0.%'
avec password2,puis,
si vous essayez de vous connecter au serveur de base de données à partir du serveur Web en tant qu'utilisateur avec mot de passe2,
il en résultera une erreur «Accès refusé» car l'
'user'@'192.168.0.102'
authentification IP unique est utilisée sur l''user'@'192.168.0.%'
authentification générique .la source
après avoir connecté le serveur et que vous souhaitez vous connecter sur votre hôte, vous devez suivre les étapes ci-dessous:
GRANT ALL ON . to root@'write_your_ip_addres' IDENTIFIED BY 'write_password_to_connect'
;nano /etc/mysql/my.cnf
service mysql restart
la source
Motivé par la réponse @Malvineaus, je l'ai essayé moi-même et j'ai remarqué que cela ne fonctionnait pas pour moi.
Vous pouvez spécifier des masques de sous-réseau avec «192.168.1.%» Ou «192.168.1.0/255.255.255.0», mais le sous-réseau doit toujours être sur des octets complets. voir https://mariadb.com/kb/en/create-user/#host-name-component . En conséquence, la fonctionnalité entre une manière de spécification et l'autre est la même.
Par exemple '192.168.1.0/255.255.255.128' ne fonctionnera pas car il n'est pas sur une limite d'octet complète.
la source