“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/7/16
He aquí cómo crear un usuario público en MySQL que requiere una contraseña para ver una base de datos, junto con explicaciones y mejores prácticas:

1. Conéctese a MySQL como Root o un usuario administrativo

Deberá conectarse a su servidor MySQL utilizando una cuenta de usuario que tenga suficientes privilegios para crear usuarios y otorgar permisos. Por lo general, este es el usuario `root` u otro usuario administrativo.

`` `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 usuario. Es la mejor práctica especificar el host desde el cual el usuario puede conectarse. Si desea que el usuario se conecte desde cualquier host, use `%`. Tenga mucho cuidado con el uso de `%` para cuentas sensibles! Para un enfoque más seguro, restringir al usuario a conectarse solo desde direcciones IP específicas o nombres de host.

`` `SQL

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

`` `` ``

* `'public_user'@'%'` :Esto define el nombre de usuario (`public_user`) y el host (`%`significa cualquier host). Reemplace `Your_strong_Password` con una contraseña fuerte y única.

* `Identificado por 'Your_strong_Password'` :Esto establece la contraseña para el usuario. Use una contraseña segura que sea larga, compleja e incluya una combinación de letras, números y símbolos en minúsculas y minúsculas. Considere usar un administrador de contraseñas para generar y almacenar sus contraseñas de forma segura.

Nota de seguridad importante: Uso de ``%'`como host permite al usuario conectarse desde * cualquier * dirección IP. Esto puede ser un riesgo de seguridad. Si es posible, restringir al usuario a una dirección IP o gama IP específica de direcciones IP. Por ejemplo:

`` `SQL

Crear usuario 'public_user'@'192.168.1.100' identificado por 'Your_strong_Password'; - Permitir solo desde IP 192.168.1.100

Crear usuario 'public_user'@'192.168.1.%' Identificado por 'Your_strong_Password'; - Permitir de la subred 192.168.1.x

`` `` ``

3. Otorgar privilegios de solo lectura a la base de datos

Use la declaración `Subvención 'para otorgar al usuario privilegios de solo lectura en la base de datos deseada.

`` `SQL

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

`` `` ``

* `Grant select` :Esto especifica que el usuario solo tendrá el privilegio `select`, que les permite leer datos. No podrán * no ser capaces de insertar, actualizar, eliminar o alterar la estructura de la base de datos.

* `en Your_Database.*` :Esto especifica la base de datos (`your_database`) y que el privilegio se aplica a todas las tablas dentro de esa base de datos (`.*`). Reemplace `Your_Database` con el nombre real de su base de datos.

* `a 'public_user'@'%'` :Esto especifica al usuario a quien se otorga el privilegio. Asegúrese de que esto coincida con el usuario que creó en el paso 2.

4. Privilegios de descarga

Después de otorgar privilegios, es esencial enjuagar las tablas de privilegios para garantizar que los cambios entren en vigencia de inmediato.

`` `SQL

Privilegios de descarga;

`` `` ``

5. Prueba al usuario

Inicie sesión en la cuenta root o administradora e inicie sesión utilizando la cuenta 'public_user` recién creada.

`` `Bash

mysql -u public_user -p -h your_mysql_server_address

`` `` ``

Reemplace `Your_Mysql_Server_Address` con la dirección real de su servidor MySQL. Si se está conectando desde la misma máquina, a menudo puede usar 'localhost'.

Ingrese la contraseña que establece para `public_user` cuando se le solicite.

Una vez iniciado sesión, intente seleccionar datos de la base de datos:

`` `SQL

Usa tu_database;

Seleccionar * de su_table;

`` `` ``

Si la declaración `select` funciona, se le ha otorgado el acceso de solo lectura. Pruebe una operación que requiera otros privilegios, como `insert`,` uply`, `delete` o 'crear tabla'. Estos deberían fallar con un error de "permiso denegado".

Ejemplo completo:

`` `SQL

-Conectar como root:mysql -u root -p

- Crea el usuario (¡reemplace con una contraseña segura!)

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

-otorgar acceso de solo lectura a la base de datos 'MyDatabase'

Otorgar selección en myDatabase.* A 'public_user'@'%';

- Actualizar privilegios

Privilegios de descarga;

- Salir de la sesión raíz

SALIDA;

- Inicie sesión como el nuevo usuario (desde la línea de comandos):

-mysql -u public_user -p -h your_mysql_server_address

- Prueba los permisos:

Usa mydatabase;

Seleccionar * de los clientes; - Debería funcionar

Insertar en valores de clientes (nombre) ('nuevo cliente'); - Debería fallar

- Salga de la sesión public_user

SALIDA;

`` `` ``

Consideraciones y mejores prácticas importantes:

* menos privilegio: Otorgar solo los privilegios necesarios. Evite otorgar privilegios más amplios de los requeridos. Por ejemplo, si el usuario solo necesita leer desde una tabla específica, otorgue `select" solo en esa tabla, no en toda la base de datos.

* Restricción del host: Limite los hosts de los que el usuario puede conectarse. No use ''%'`a menos que sea absolutamente necesario y comprenda las implicaciones de seguridad.

* Administración de contraseñas: Haga cumplir las políticas de contraseña segura y gire regularmente las contraseñas. Use un administrador de contraseñas.

* Registro de auditoría: Habilite el registro de auditorías en su servidor MySQL para rastrear la actividad del usuario, incluidos los inicios de sesión, las consultas y otras operaciones. Esto puede ayudarlo a detectar e investigar incidentes de seguridad.

* Auditorías de seguridad regulares: Revise regularmente su configuración MySQL, cuentas de usuario y privilegios para identificar y abordar posibles vulnerabilidades de seguridad.

* Cifrado: Use el cifrado para proteger los datos en reposo y en tránsito. Habilitar SSL para conexiones con el cliente.

* firewall: Configure su firewall para permitir solo el tráfico necesario en su servidor MySQL.

* Monitoreo: Monitoree su servidor MySQL para obtener problemas de rendimiento y amenazas de seguridad.

* Diseño de la base de datos: Diseñe su base de datos con seguridad en mente. Use los tipos y restricciones de datos apropiados para evitar ataques de corrupción y inyección de datos. Considere usar declaraciones preparadas para evitar la inyección de SQL.

* Evite exponer directamente a Internet: En la mayoría de los casos, debe * no * exponer directamente su base de datos MySQL a Internet público. En su lugar, use un servidor de aplicaciones (por ejemplo, un servidor web que ejecuta PHP, Python, Node.js, etc.) para manejar las solicitudes de los clientes e interactuar con la base de datos en nombre del usuario. Esto le permite implementar controles de seguridad más estrictos y proteger la base de datos de ataques directos. Esto es crucial para prevenir el acceso no autorizado y las violaciones de datos.

* No hay exposición directa al usuario final: Nunca permita que el usuario final ingrese directamente en su base de datos, en su lugar, use un sitio web.

Siguiendo estos pasos y mejores prácticas, puede crear un usuario público que requiera una contraseña para ver los datos en MySQL mientras mantiene un nivel razonable de seguridad. Recuerde adaptar estas instrucciones a sus requisitos específicos de entorno y seguridad. Siempre priorice la seguridad y revise regularmente su configuración para asegurarse de que siga siendo efectiva.

Programación PHP /MySQL
Cómo mostrar datos MySQL con PHP
Cómo buscar una cadena dentro de una cadena de PHP
Cómo restablecer la contraseña de root de MySQL 5.1 en Windows
Cómo utilizar cURL PHP Contenido de la página Cuerdas
Cómo protegerse contra las inyecciones SQL en PHP
Cómo crear archivos de idioma para los sitios web en PHP
Cómo crear una llamada PHP Nombre
Cómo detener un PHP & Start otro archivo PHP
Conocimiento de la computadora © http://www.ordenador.online