¿Cómo funcionan los usuarios de privilegios en MySQL?
Pregunta
¿Cómo funcionan los usuarios de privilegios en MySQL? ¿Todos los usuarios que usan un sitio web de redes sociales tienen un privilegio de usuario único para conectarse a la base de datos o todos los usuarios usan el mismo privilegio, como:
$dsn = 'mysql:host=localhost;dbname=social_site';
$username = 'members';
$password = 'pa55word';
Solución
No, en términos generales, habrá uno (o un pequeño número) de usuarios de MySQL, y el script PHP (u otro código del lado del servidor) usará este usuario para hacer todos los datos de recuperación y configuración de datos. En algunos escenarios, es útil crear un puñado de usuarios de MySQL con varios niveles de permisos, como un nivel adicional de seguridad (así que general select
Las consultas se ejecutan utilizando un usuario con solo select
privilegios y inserts
y updates
son manejados por un usuario separado con esos privilegios). Si permite que las computadoras remotas accedan a la base de datos MySQL directamente (para sitios web o aplicaciones de socios), también es común crear un usuario de MySQL específico para esa conexión con permisos limitados solo a lo que necesitan (no drop
o modify
Permisos, por ejemplo) y limitado exclusivamente a su dirección IP (puede limitar un usuario de MySQL a las conexiones desde una sola dirección).
La conclusión es que solo debe crear algunos usuarios, y su sitio web/aplicación solo utilizará este pequeño grupo de usuarios para hacer toda la consulta. Además, es una buena práctica acceder a la base de datos con un usuario que tiene la menor cantidad de permisos posibles para lograr las tareas (dentro de lo razonable ... no cree un usuario separado para cada acción posible ... generalmente 1-3 usuarios deben cubrir todos niveles de permisos que desee). Si crea una gran cantidad de usuarios, (a) ralentizará MySQL, ya que tiene que acceder a una tabla de permisos más grande; (b) Será mucho más difícil administrar los permisos si la aplicación cambia en el futuro; y (c) es más doloroso depurar problemas de permisos (su script PHP tiene más flexibilidad en qué hacer e informar si hay un problema de permisos).
Otros consejos
Normalmente tiene una conexión de base de datos y almacena las cuentas de cada usuarios en una tabla de "usuarios" con los nombres de usuario y contraseñas correspondientes.