Cuentas de usuario en mysql

CONTENIDO:

1. SISTEMA DE PRIVILEGIOS
2. PRIVILEGIOS DE LOS QUE PROVEE MYSQL
3. CREACIÓN DE CUENTAS DE USUARIO
4. ASIGNAR CONTRASEÑAS
5. ELIMINAR CUENTAS DE USUARIO
6. LIMITAR RECURSOS DE CUENTAS

1. 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 conprivilegios en una base de datos tales como SELECT, INSERT, UPDATE, y DELETE.

El sistema de privilegios de MySQL asegura que todos los usuarios pueden ejecutar sólo la operación permitida. 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, elsistema le otorga privilegios acorde a su identidad y lo que quiera hacer.

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 seleccionar registros de una tabla en una base de datos o eliminar una tabla de la base de datos, elservidor verifica que tenga el permiso SELECT para la tabla o el permiso DROP para la base de datos.

El servidor usa las tablas USER, DB, y HOST en la base de datos mysql en ambas etapas de control de acceso.

Si desea ver la descripción de la tabla USER digite:
Mysql> describe mysql.user;

En estas tablas se encuentran columnas de alcance, privilegios, seguridad, control de recursos.

Lascolumnas de alcance de la tabla user (host, user y password) determinan si se rechazan o permiten conexiones entrantes.

Para conexiones permitidas, cualquier privilegio otorgado en la tabla user indica los privilegios globales del usuario (superusuario). Estos privilegios se aplican a todas las bases de datos en el servidor.

Si desea ver la descripción de la tabla DB digite:
Mysql> describemysql.db;

Se encuentran columnas de alcance y privilegios.
Las columnas de alcance de la tabla db (host, db, user) determinan qué usuarios pueden acceder a qué bases de datos desde qué equipo. La columna de privilegios determina qué operaciones se permiten. Un privilegio otorgado a nivel de base de datos se aplica a la base de datos y a todas sus tablas.

Si desea ver la descripción de latabla HOST digite:
Mysql> describe mysql.host;

Se encuentran columnas de alcance y privilegios.
La tabla host se usa en conjunción con la tabla db cuando desea que un registro de la tabla db se aplique a varios equipos. Por ejemplo, si quiere que un usuario sea capaz de usar una base de datos desde varios equipos en su red, deje el valor Host vacío en el registro de usuario de la tabla ddb ,luego rellene la tabla host con un registro para cada uno de estos equipos.

Durante la segunda etapa de control de acceso, el servidor efectúa una verificación de petición para asegurar que cada cliente tiene suficientes privilegios para cada petición que recibe. Adicionalmente a las tablas de permisos user, db, y host, el servidor puede consultar las tablas tables_priv y columns_priv parapeticiones que impliquen tablas. Las tablas tables_priv y columns_priv proveen de un control de privilegios más fino a nivel de tabla y columna.

Mysql> describe mysql.tables_priv;
Mysql> describe mysql. columns_priv;

Para verificación de peticiones que impliquen rutinas almacenadas, el servidor puede consultar la tabla procs_priv.

Mysql> describe mysql. procs_priv;

Las tablas tables_priv ycolumns_priv son similares a la tabla db , pero son más detalladas:

se aplican a nivel de tabla y de columna en lugar de a nivel de base de datos. Un privilegio otorgado a nivel de tabla se aplica a la tabla y a todas sus columnas. Un privilegio otorgado a nivel de columna se aplica sólo a la columna especificada.

La tabla procs_priv se aplica a rutinas almacenadas. Un privilegio otorgado…