El sistema de privilegios de acceso de mysql
5.6.1. Qué hace el sistema de privilegios 5.6.2. Cómo funciona el sistema de privilegios 5.6.3. Privilegios de los que provee MySQL 5.6.4. Conectarse al servidor MySQL 5.6.5. Control de acceso, nivel 1: Comprobación de la conexión 5.6.6. Control de acceso, nivel 2: comprobación de solicitudes 5.6.7. Cuándo tienen efecto los cambios de privilegios5.6.8. Causas de errores Access denied 5.6.9. Hashing de contraseñas en MySQL 4.1 MySQL tiene un sistema avanzado pero no de seguridad y privilegios. Esta sección describe su funcionamiento.
5.6.1. Qué hace el sistema de privilegios
La función primaria del sistema de privilegios de MySQL es autenticar un usuario conectándose desde un equipo dado, y asociar dicho usuario con privilegios enuna base de datos tales como SELECT, INSERT, UPDATE, y DELETE. Funcionalidad adicional incluye la habilidad de tener usuarios anónimos y de dar privilegios para funciones específicas de MySQL tales como LOAD DATA INFILE y operaciones administrativas.
5.6.2. Cómo funciona el sistema de privilegios
El sistema de privilegios de MySQL asegura que todos los usuarios pueden ejecutar sólo laoperación permitida a los mismos. Como usuario, cuando conecta a un servidor MySQL, su identidad se determina mediante el equipo desde el que se conecta y el nombre de usuario que especifique. Cuando efectúe peticiones tras conectar, el sistema le otorga privilegios acorde a su identidad y lo que quiera hacer. MySQL considera tanto su nombre de usuario y su equipo a la hora de identificarle, ya que nohay razón para asumir que un nombre de usuario pertenece a la misma persona en cualquier sitio de Internet. Por ejemplo, el usuario joe que conecta desde office.com no tiene porqué ser la misma persona que el usuario joe que conecta desde elsewhere.com. MySQL trata esto permitiendole distinguir usuarios en diferentes equipos que tienen el mismo nombre. Puede otorgar un conjunto de privilegios paraconexiones de joe desde office.com, y un conjunto distinto para conexiones de joe desde elsewhere.com. El control de acceso de MySQL implica dos etapas:
Etapa 1: El servidor comprueba si debe permitirle conectarse. Etapa 2: Asumiendo que se conecta, el servidor comprueba cada comando que ejecuta para ver si tiene suficientes permisos para hacerlo. Por ejemplo, si intenta seleccionarregistros de una tabla en una base de datos o eliminar una tabla de la base de datos, el servidor verifica que tenga el permiso SELECT para la tabla o el permiso DROP para la base de datos.
Si sus permisos cambian (por usted mismo o alguien distinto) mientras está conectado, estos cambios no tienen porqué tener efecto inmediatamente para el siguiente comando que ejecute. Consulte Sección 5.6.7,“Cuándo tienen efecto los camios de privilegios” para más detalles. El servidor guarda información de privilegios en las tablas de permisos de la base de datos mysql (esto es, en la base de datos llamada mysql ). El servidor MySQL lee el contenido de dichas tablas en memoria cuando arranca y las vuelve a leer bajo las circunstancias indicadas en Sección 5.6.7, “Cuándo tienen efecto los camios deprivilegios”. Las decisiones acerca de control de acceso se basan en las copias en memoria de las tablas de permisos. Normalmente, manipula los contenidos de las tablas de permisos indirectamente usando los comandos GRANT y REVOKE para configurar cuentas y controlar los privilegios disponibles para cada una. Consulte Sección 13.5.1.3, “Sintaxis de GRANT y REVOKE ”. La discusión aquí describe la estructurasubyacente de las tablas de permisos y cómo el servidor usa sus contenidos cuando interactúa con clientes. El servidor usa las tablas user, db, y host en la base de datos mysql en ambas etapas de control de acceso. Las columnas en estas tablas de permisos se muestran a continuación:
Nombre tabla
user
db
host
Alcance Host columnas
User Password
Host
Host
Db User...
Regístrate para leer el documento completo.