“Conocimiento Programación>Programación PHP /MySQL

¿Cómo se crea un usuario público que requiere una contraseña para ver la base de datos en MySQL?

2013/9/3
Aquí le mostramos cómo crear un usuario público en MySQL con autenticación de contraseña, específicamente para el acceso de solo lectura a una base de datos:

1. Conéctese a MySQL como un usuario privilegiado:

Primero, debe conectarse a su servidor MySQL como usuario con privilegios administrativos (como 'root`). Use el cliente MySQL:

`` `Bash

mysql -u raíz -p

`` `` ``

Ingrese la contraseña de root cuando se le solicite.

2. Crea el usuario:

Use la instrucción 'Crear usuario' para crear el nuevo usuario. Reemplace `'public_user'` y`' Your_Password "con el nombre de usuario y la contraseña deseados. La cláusula 'identificada por' establece la contraseña del usuario. El `%` significa de cualquier anfitrión.

`` `SQL

Crear usuario 'public_user'@'%' identificado por 'Your_Password';

`` `` ``

Nota de seguridad importante: El uso de ''%'`permite al usuario conectarse desde * cualquier * host. Esto a menudo es * no * una buena idea por razones de seguridad. Si sabe que el usuario solo se conectará desde una dirección IP específica o nombre de host, reemplace ''%'`con esa dirección (por ejemplo,`' public_user '@' 192.168.1.100'` o `'public_user'@'Yourdomain.com' '). Por ejemplo:

`` `SQL

Crear usuario 'public_user'@'192.168.1.100' identificado por 'Your_Password';

`` `` ``

Esto solo permitiría al usuario conectarse desde la dirección IP `192.168.1.100`.

3. Otorgar privilegios de solo lectura:

Utilice la declaración `subvención 'para dar al usuario acceso de solo lectura a la base de datos específica. Reemplace `Your_Database` con el nombre de la base de datos a la que desea otorgar acceso.

`` `SQL

Otorgue seleccionar en su_database.* A 'public_user'@'%';

`` `` ``

* `SELECT`:permite al usuario leer datos de tablas en la base de datos.

* `Your_database.*`:Especifica que el privilegio se aplica a todas las tablas dentro de 'Your_Database`.

* `A 'public_user'@'%'`:Especifica el usuario y el host para el cual se otorga el privilegio.

4. Privilegios de descarga:

Después de otorgar privilegios, debe enjuagar las tablas de privilegios para que los cambios entren en vigencia.

`` `SQL

Privilegios de descarga;

`` `` ``

5. Salir mysql:

`` `SQL

salida;

`` `` ``

Ejemplo completo:

`` `Bash

mysql -u root -p # conectar como root

Ingrese su contraseña de root cuando se le solicite

Cree el usuario 'public_user'@'%' identificado por 'mySeecurePassword123!';

Otorgue seleccionar en su_database.* A 'public_user'@'%';

Privilegios de descarga;

salida;

`` `` ``

Explicación y consideraciones importantes:

* `Crear usuario ': Crea una nueva cuenta de usuario MySQL.

* `Grant`: Asigna permisos específicos (privilegios) a un usuario.

* `Flush Privileges`: Recarga las tablas de subvención. Esto es * esencial * después de hacer cambios en los privilegios del usuario; De lo contrario, los cambios podrían no entrar en vigencia de inmediato.

* `identificado por ': Establece la contraseña del usuario. ¡Elija una contraseña segura!

* Las mejores prácticas de seguridad:

* Limite el acceso al host: Como se mencionó, evite usar ''%'`para el host si es posible. Restringir al usuario para que solo se conecte desde direcciones IP conocidas y confiables.

* Principio de menor privilegio: Solo otorgue los privilegios mínimos que necesita el usuario. En este caso, 'Select` es suficiente para el acceso de solo lectura. Evite otorgar 'todos los privilegios' a menos que sea absolutamente necesario.

* Complejidad de contraseña: Haga cumplir las políticas de contraseña segura. Use una mezcla de letras, números y símbolos superiores y en minúsculas. Considere usar el complemento de validación de contraseña de MySQL para una aplicación de contraseña más fuerte.

* ssl/tls: Para los entornos de producción, siempre cifre conexiones entre el cliente y el servidor MySQL que usa SSL/TLS para proteger la contraseña y los datos transmitidos a través de la red.

* Privilegios alternativos: En lugar de otorgar `select` en toda la base de datos (` Your_Database.*`), Puede otorgar` select` solo en tablas específicas:

`` `SQL

Otorgue seleccionar en su_database.table1 a 'public_user'@'%';

Otorgue seleccionar en su_database.table2 a 'public_user'@'%';

`` `` ``

Esto es aún más seguro, ya que limita el acceso a solo las tablas necesarias.

* Auditoría: Considere habilitar el registro de auditoría de MySQL para rastrear quién está accediendo a la base de datos y qué consultas están ejecutando.

Conectando con el nuevo usuario:

Para conectarse usando el nuevo usuario:

`` `Bash

mysql -u public_user -p -h your_mysql_host -d your_database

`` `` ``

* `-U public_user`:Especifica el nombre de usuario.

* `-P`:solicita la contraseña.

* `-h your_mysql_host`:Especifica el nombre de host o la dirección IP de su servidor MySQL. Si se conecta desde la misma máquina, a menudo puede omitir esto o usar `localhost` o` 127.0.0.1`.

* `-D your_database`:Especifica la base de datos a la que se conecte.

Después de ejecutar este comando, se le pedirá que ingrese la contraseña de 'public_user`.

Siguiendo estos pasos y considerando las recomendaciones de seguridad, puede crear un usuario público con acceso de solo lectura a su base de datos MySQL de manera segura y controlada. Priorice siempre la seguridad al otorgar acceso a sus datos.

Programación PHP /MySQL
Cómo crear un concurso en línea con PHP
Cómo para alternar colores de fila en CSS con PHP
PHP no está siendo ejecutado
Cómo crear Confirmación en PHP
Cómo probar un formulario de contacto PHP en XAMPP
¿Cómo puedo llamar al timbre en el servidor desde PHP
Cómo comprobar para ver si un archivo se abre en PHP
Cómo hacer una matriz de Javascript con PHP
Conocimiento de la computadora © http://www.ordenador.online