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
USERse almacenan los usuarios que pueden acceder al servidor. - En la tabla
DBse definen los privilegios a nivel de base de datos. - En la tabla
TABLES_PRIVse encuentran los privilegios a nivel de tabla. - En la tabla
COLUMNS_PRIVse 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 OPTIONTipos de Privilegios Comunes
| Privilegio | Función |
|---|---|
ALTER | Alterar tablas e índices. |
CREATE | Crear bases de datos y tablas. |
DELETE | Borrar registros de las tablas. |
INSERT | Insertar registros nuevos en tablas (estructura). |
SELECT | Consultar información de tablas. |
UPDATE | Modificar el contenido de registros existentes. |
ALL | Equivale a dar todos los privilegios. |
USAGE | Equivale a NO dar privilegios. |
Privilegios Administrativos
Existen permisos con alcance administrativo superior:
CREATE USER: Permite el uso de sentencias comoCREATE USER,DROP USER,RENAME USER, yREVOKE ALL PRIVILEGES.DROP USERRENAME USERREVOKE
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.