Gestión de Cuentas y Permisos en Servidores MySQL: Estructura y Sintaxis

Clasificado en Informática

Escrito el en español con un tamaño de 4,14 KB

Gestión de Cuentas y Permisos en Servidores MySQL

Las cuentas del servidor **MySQL** se diferencian por dos parámetros: el **nombre de usuario** y el **host** desde el cual se realiza la conexión. Los nombres de usuario son independientes a la cuenta de usuario del sistema operativo. Mediante varias sentencias se pueden crear usuarios, modificar permisos de los usuarios y eliminar cuentas. Antiguamente, en lugar de utilizar estas sentencias, se tenían que modificar las tablas de la base de datos mysql donde se encuentran almacenados los usuarios, etc.

Estructura de Almacenamiento de Usuarios y Privilegios

La información de acceso y permisos se almacena en tablas específicas del sistema:

  • En la tabla USER se almacenan los usuarios que pueden acceder al servidor.
  • En la tabla DB se definen los privilegios a nivel de base de datos.
  • En la tabla TABLES_PRIV se encuentran los privilegios a nivel de tabla.
  • En la tabla COLUMNS_PRIV se especifican los privilegios a nivel de columna.

Sintaxis para la Concesión de Privilegios (GRANT)

La sentencia básica para otorgar permisos sigue la siguiente estructura:

GRANT privilegios (columnas)
ON nivel_privilegio
TO usuario@host IDENTIFIED BY 'contraseña'
WITH GRANT OPTION

Tipos de Privilegios Comunes

PrivilegioFunción
ALTERAlterar tablas e índices.
CREATECrear bases de datos y tablas.
DELETEBorrar registros de las tablas.
INSERTInsertar registros nuevos en tablas (estructura).
SELECTConsultar información de tablas.
UPDATEModificar el contenido de registros existentes.
ALLEquivale a dar todos los privilegios.
USAGEEquivale a NO dar privilegios.

Privilegios Administrativos

Existen permisos con alcance administrativo superior:

  • CREATE USER: Permite el uso de sentencias como CREATE USER, DROP USER, RENAME USER, y REVOKE ALL PRIVILEGES.
  • DROP USER
  • RENAME USER
  • REVOKE

Detalles de la Sintaxis

Especificación de Columnas

En el parámetro COLUMNAS se añade el listado de columnas separadas por comas (,) a las que tiene acceso el usuario, esto aplica específicamente en caso de tener privilegios a nivel de columna.

Definición del Nivel de Privilegio (ON)

En NIVEL_PRIVILEGIO se introduce el ámbito de aplicación del permiso, el cual puede ser de cuatro modos:

1. Nivel Global

Los privilegios aplicados afectarán a **todas las bases de datos** del servidor. Para especificar este modo, la línea ON debe quedar así: ON *.*.

2. Nivel de Base de Datos

Los privilegios aplicados afectarán únicamente a la base de datos especificada. Para este modo, la línea ON debe quedar así: ON base_datos.*.

3. Nivel de Tabla

Los privilegios se aplican a una única tabla dentro de una determinada base de datos. La sintaxis para la línea ON debe ser: ON base_datos.nombre_tabla.

4. Nivel de Columna

Los privilegios se aplican sobre columnas específicas. La segunda línea (la de ON) debe quedar igual que a nivel de tabla (ON base_datos.nombre_tabla), y en la primera línea (la de GRANT) se añadirá, dentro de un paréntesis, un listado de las columnas seleccionadas.

Entradas relacionadas: