una servidor remoto remota para habilitar datos configurar conexion conectarse conectar acceso mysql grant

servidor - ¿Cómo otorgar acceso remoto a MySQL para una subred completa?



habilitar acceso remoto mariadb (5)

Puedo otorgar acceso a una IP fácilmente usando este código:

$ 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;

Pero necesito permitir que toda la subred 192.168.1. * Acceda a la base de datos de forma remota.

¿Cómo puedo hacer eso?


EDITAR: Considera mirar y votando la respuesta de Malvineous en esta página. Las máscaras de red son una solución mucho más elegante.

Simplemente use un signo de porcentaje como un comodín en la dirección IP.

De http://dev.mysql.com/doc/refman/5.1/en/grant.html

Puede especificar comodines en el nombre de host. Por ejemplo, user_name@''%.example.com'' aplica a user_name para cualquier host en el dominio example.com , y user_name@''192.168.1.%'' aplica a user_name para cualquier host en la subred de clase C 192.168.1 .


Solo una nota de una peculiaridad que enfrenté:
Considerar:

db server: 192.168.0.101 web server: 192.168.0.102

Si tiene un usuario definido en mysql.user como ''user''@''192.168.0.102'' con contraseña1 y otro ''user''@''192.168.0.%'' con contraseña2,

entonces,

si intenta conectarse al servidor db desde el servidor web como ''usuario'' con contraseña2,

dará como resultado un error de ''Acceso denegado'' porque la autenticación IP ''user''@''192.168.0.102'' se usa sobre la autenticación ''user''@''192.168.0.%'' comodín.


Solo usarías ''%'' como tu comodín de esta manera:

GRANT ALL ON *.* to root@''192.168.1.%'' IDENTIFIED BY ''your-root-password'';



mysql> GRANT ALL ON *.* to root@''192.168.1.%'' IDENTIFIED BY ''your-root-password'';

El carácter comodín es un "%" en lugar de un "*"