Permisos de usuario de MySQL

Una introducción rápida a los permisos de usuario en una base de datos MySQL

Veamos cómo otorgar permisos (llamados privilegios) a un usuario de la base de datos MySQL

De forma predeterminada, cuando crea un nuevo usuario de MySQL utilizando la sintaxis

CREATE USER '<username>'@'localhost' IDENTIFIED BY '<password>';

el usuario no puede hacer mucho. En realidad, podemos decir que no se puede hacer nada.

No puede leer datos de ninguna base de datos existente, y mucho menos modificar los datos. Y ni siquiera puede crear una nueva base de datos.

Para que un usuario haga algo, debeconceder privilegioslo.

Puede hacerlo utilizando elGRANTmando.

Nosotros podemos usarGRANT <permission>, utilizando las siguientes palabras clave de permiso:

  • CREATE
  • DROP
  • DELETE
  • INSERT
  • SELECT
  • UPDATE
  • ALL PRIVILEGES

Dar privilegio para crear nuevas bases de datos a un usuario

GRANT CREATE ON *.* TO '<username>'@'localhost';

Otorgue privilegios a un usuario para crear nuevas tablas en una base de datos específica

GRANT CREATE ON <database>.* TO '<username>'@'localhost';

Dar privilegio para leer (consultar) una base de datos específica a un usuario

GRANT SELECT ON <database>.* TO '<username>'@'localhost';

Dar privilegio para leer una base de datos específicamesaa un usuario

GRANT SELECT ON <database>.<table> TO '<username>'@'localhost';

Otorgue privilegios para insertar, actualizar y eliminar filas en una base de datos específica a un usuario

GRANT INSERT, UPDATE, DELETE ON <database>.* TO '<username>'@'localhost';

Otorgar privilegios para eliminar tablas en una base de datos específica a un usuario

GRANT DROP ON <database>.* TO '<username>'@'localhost';

Otorgar privilegios para eliminar bases de datos a un usuario

GRANT DROP ON *.* TO '<username>'@'localhost';

Dar todos los privilegios sobre una base de datos específica a un usuario

GRANT ALL PRIVILEGES ON <database>.* TO '<username>'@'localhost';

Dar todos los privilegios a un usuario

GRANT ALL PRIVILEGES ON *.* TO '<username>'@'localhost';

Revocar un privilegio

Ejemplo para revocar elDROPprivilegio en<database>:

REVOKE DROP ON <database>.* TO '<username>'@'localhost';

Para revocar todos los privilegios, ejecute:

REVOKE ALL PRIVILEGES ON *.* TO '<username>'@'localhost';

Puede visualizar los privilegios de un solo usuario ejecutando:

SHOW GRANTS FOR '<username>'@'localhost';

Más tutoriales de bases de datos: