MySQL y SGBD: Autenticación, Privilegios y Gestión de Datos

Enviado por Programa Chuletas y clasificado en Informática y Telecomunicaciones

Escrito el en español con un tamaño de 7,94 KB

Conexión y Autenticación en MySQL

Proceso de Autenticación del Servidor MySQL

Cuando intentamos conectarnos a un servidor MySQL, el servidor acepta o rechaza la conexión basándose en nuestra identidad. Esta identidad se basa en dos elementos de información clave: el nombre de usuario y el nombre de la máquina cliente (IP) desde donde nos conectamos. La comprobación de la identidad se realiza utilizando las tres columnas principales de la tabla mysql.user: host, user y password.

Control de Acceso y Privilegios

Una vez establecida una conexión, el servidor entra en el estado de control de acceso. Por cada petición que llega a través de la conexión, el servidor determina qué operación se debe realizar y, a continuación, comprueba si la cuenta tiene suficientes privilegios para ejecutarla. Aquí es donde las columnas de privilegios de las tablas grant (como mysql.db, mysql.tables_priv, etc.) entran en juego.

Niveles de Permiso en la Tabla mysql.user

Los permisos asignados en la tabla mysql.user se otorgan de manera global y se aplican sin importar sobre qué bases de datos se trabaje. Es crucial tener precaución al otorgar privilegios en esta tabla, y se aconseja hacerlo solo a superusuarios. Por ejemplo, si la tabla mysql.user otorga el privilegio DELETE ('Y'), el usuario podrá borrar registros de cualquier tabla en cualquier base de datos del servidor.

Almacenamiento de Contraseñas en MySQL

Cuando se almacena una contraseña en la columna password de la tabla mysql.user (por ejemplo, 'tu_pass'), el sistema aplica la función PASSWORD() al valor introducido. Al intentar iniciar sesión, el sistema también aplica esta función al valor de la contraseña proporcionado por el usuario. Por lo tanto, el resultado de la función PASSWORD() aplicada a la contraseña de entrada debe coincidir con el hash almacenado en la tabla mysql.user. Esto asegura que no se pueda acceder simplemente introduciendo el hash almacenado.

Opciones de Configuración del Binlog en MySQL

El registro binario (binlog) es fundamental para la replicación y la recuperación de datos en MySQL. A continuación, se describen dos opciones clave para su configuración:

--binlog-do-db=db_name

Esta opción indica al servidor que debe registrar los cambios en el registro binario solo si la base de datos actual es db_name. Todas las demás bases de datos no mencionadas serán ignoradas en el binlog.

--binlog-ignore-db=db_name

Esta opción especifica que las actualizaciones donde la base de datos actual es db_name no deben ser almacenadas en el registro binario. Si se utiliza esta opción, es importante asegurarse de que solo se realizan actualizaciones en la base de datos actual para evitar inconsistencias en la replicación o recuperación.

Diccionario de Datos y Componentes de un SGBD

Tablas Clave del Information Schema de MySQL

El Information Schema es una base de datos que proporciona acceso a metadatos sobre el servidor MySQL. Algunas de sus tablas más relevantes incluyen:

  • SCHEMATA: Proporciona información sobre las bases de datos disponibles en el servidor.
  • TABLES: Ofrece información sobre las tablas en el servidor.
  • COLUMNS: Detalla la información acerca de las columnas en las tablas.
  • USER_PRIVILEGES: Proporciona información acerca de los permisos globales (equivalente a la tabla mysql.user).
  • SCHEMA_PRIVILEGES: Ofrece información acerca de los permisos a nivel de esquema o base de datos (equivalente a la tabla mysql.db).
  • TABLE_PRIVILEGES: Detalla la información acerca de los permisos a nivel de tabla (equivalente a la tabla mysql.tables_priv).
  • COLUMN_PRIVILEGES: Proporciona información sobre los permisos a nivel de columna (equivalente a la tabla mysql.columns_priv).
  • CHARACTER_SETS: Información sobre los conjuntos de caracteres disponibles.
  • TABLE_CONSTRAINTS: Describe qué tablas tienen restricciones.
  • KEY_COLUMN_USAGE: Detalla qué columnas clave tienen restricciones.
  • ROUTINES: Información sobre los procedimientos y funciones almacenadas.
  • VIEWS: Información sobre las vistas de la base de datos.
  • TRIGGERS: Información sobre los disparadores (requiere el permiso TRIGGER_ADMIN).

Características Esenciales de un Sistema Gestor de Bases de Datos (SGBD)

Un SGBD eficiente debe cumplir con las siguientes características fundamentales:

  • Abstracción de la información: La complejidad del almacenamiento físico de la base de datos es transparente para el usuario.
  • Consistencia: Asegura que los datos repetidos o relacionados se actualicen de forma simultánea y coherente, manteniendo la integridad de la base de datos.
  • Independencia: Permite modificar el esquema de la base de datos (independencia lógica) o la forma en que se almacenan los datos (independencia física) sin requerir cambios en las aplicaciones que la utilizan.
  • Manejo de transacciones: Garantiza que las operaciones se realicen de forma atómica, consistente, aislada y duradera (ACID), asegurando que el estado de la base de datos sea el mismo que se obtendría si la transacción no se hubiera ejecutado en caso de fallo.
  • Seguridad: Ofrece mecanismos robustos para otorgar y revocar permisos a usuarios y grupos de usuarios, controlando el acceso a los datos y operaciones.
  • Tiempo de respuesta: Optimiza el rendimiento para minimizar el tiempo que tarda el SGBD en procesar las consultas y operaciones.

Componentes Clave de un SGBD

Un Sistema Gestor de Bases de Datos se compone de varios módulos interconectados que permiten su funcionamiento:

  • Lenguajes de Definición de Datos (DDL): Para definir la estructura de la base de datos.
  • Lenguajes de Control de Datos (DCL): Para gestionar los permisos y la seguridad.
  • Lenguajes de Manipulación de Datos (DML): Para insertar, actualizar, eliminar y consultar datos.
  • Diccionario de Datos (DD): Un esquema que describe el contenido del SGBD, incluyendo los distintos objetos (tablas, vistas, etc.) y sus propiedades.
  • Objetos de la Base de Datos: Incluye tablas, vistas, consultas, dominios, restricciones de tablas, funciones, procedimientos almacenados y disparadores (triggers).
  • Herramientas de Administración: Programas y utilidades para garantizar la seguridad, integridad y mantenimiento de la base de datos.
  • Optimizador de Consultas: Componente que determina la estrategia óptima para ejecutar las consultas, mejorando el rendimiento.
  • Gestión de Transacciones: Módulo encargado de asegurar las propiedades ACID de las transacciones.
  • Planificador (Scheduler): Para programar y automatizar la realización de ciertos procesos y operaciones.
  • Módulo de Copias de Seguridad: Para la creación y restauración de respaldos de la base de datos.

Entradas relacionadas: