Privilegios y Usuarios en MySQL

Creación, edición y eliminación de usuarios y sus privilegios

Los privilegios son permisos que determinan el tipo (alcance) de acceso de un usuario a las bases de datos (y su contenido).  A continuación se muestran los distintos tipos de privilegios.

Tipos de privilegios:

GlobalesSe aplica a todas las bases de datos del servidor. 

  1. ON *.*

Base de datosSe aplica a bases de datos.

  1. ON [basededatos].*

Tabla: Se aplica a tablas.

  1. ON [basededatos].[tabla]

Columna: Se aplica a columnas.

  1. [privilegio]([campo])

Rutina: Se aplica a procedimientos almacenados.

 USUARIO

Para crear un usuario es necesario crearlo mediante el comando CREATE USER para después asignar privilegios al usuario.

CREAR USUARIO

  1. CREATE USER [usuario]@"localhost" IDENTIFIED BY "[contraseña]"

MODIFICAR CONTRASEÑA DE USUARIO

  1. SET PASSWORD FOR [nombre_usuario] = PASSWORD("[nuevo contraseña]")

ELIMINAR USUARIO

Para eliminar un usuario MySQL dispone del comando DROP USER.

  1. DROP USER [usuario]

Nota: Es recomendable revocar los privilegios del usuario antes de eliminar el usuario.

PRIVILEGIOS

  • ALL: Todos los privilegios
  • CREATE:   Crear tablas.
  • DELETE: Eliminar registros.
  • DROP: Eliminar tablas.
  • INSERT: Insertar registros.
  • UPDATE: Actualizar registros.
  • SELECT: Realizar consultas a las tablas.

Nota: Los nombres de usuario están limitados a 16 caracteres, a diferencia de la contraseña que no tiene ningún límite.

MOSTRAR PRIVILEGIOS

Mostrar los privilegios de un usuario

  1. SHOW GRANTS

ASIGNAR PRIVILEGIOS A USUARIO:

  1. GRANT [privilegio] (campo)
  2. [privilegio] (campo)
  3. ON [tabla]|*|*.*|[base_de_datos.*],
  4. TO [usuario] IDENTIFIED BY ["contraseña"]
  5. [usuario] IDENTIFIED BY ["contraseña"]

ACTUALIZAR PRIVILEGIOS

  1. FLUSH PRIVILEGES

Ejemplo asignando todos los privilegios:

  1. GRANT ALL PRIVILEGES ON [tabla]|*|*.*|[base_de_datos.*] TO "[usuario]"@"localhost"

Ejemplo asignando un privilegio determinado:

  1. GRANT SELECT ON usuarios TO manel

REVOCAR PRIVILEGIOS

Para poder revocar un privilegio asignado hacemos uso del comando REVOKE

  1. REVOKE [privilegio]([campo])
  2. [privilegio]([campo])
  3. ON [tabla|*|*.*|[basededatos.*],
  4. FROM [usuario],[usuario2]

Ejemplo  de revoque de privilegios INSERT Y UPDATE en todas las tablas de la base de datos blogdb para el usuario manel.

  1. REVOKE INSERT,UPDATE ON
  2. blogdb.* FROM manel

LÍMITES AL USUARIO

MySQL dispone de varias opciones para poder limitar acciones al usuario

  • MAX QUERIES PER HOUR
  • MAX UPDATES PER HOUR
  • MAX CONNECTIONS PER HOUR
  • MAX USER_CONNECTIONS
  1. GRANT ALL ON [basedatos.*] TO [usuario]@"localhost"
  2. IDENTIFIED BY "contraseña"
  3. WITH MAX_QUERIES_PER_HOUR 100
  4. MAX_UPDATE_PER_HOUR 50
  5. MAX_CONNECTIONES_PER_HOUR 20
  6. MAX_USER_CONNECTIONES 5

Para poder modificar límites ya establecidos:

  1. GRANT USAGE ON [basedatos.*] TO [usuario]@"localhost"
  2. WITH MAX_QUERIES_PER_HOUR 50
  3. MAX_UPDATE_PER_HOUR 30
  4. MAX_CONNECTIONES_PER_HOUR 10
  5. MAX_USER_CONNECTIONES 3

Para reiniciar los distintos límites:

  1. GRANT USAGE ON [basedatos.*] TO [usuario]@"localhost"
  2. WITH MAX_QUERIES_PER_HOUR 10

Para reinciar todos los límites(2 comandos):

  1. FLUSH USER_RESOURCES

O recargando los privilegios de las tablas

  1. FLUSH PRIVILEGES


Comentarios: 0

Para poder comentar es necesario iniciar sesión



Este dominio utiliza cookies de terceros para crear estadísticas y publicidad personalizada. Si continúa navegando está aceptando su uso