sql >> Base de Datos >  >> RDS >> Mysql

Permisos de usuario de 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 usando la sintaxis

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

el usuario no puede hacer mucho. Podemos decir que no puede hacer nada, en realidad.

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 hacer que un usuario haga algo, debe otorgar privilegios a ella.

Puedes hacerlo usando el GRANT comando.

Podemos usar GRANT <permission> , utilizando las siguientes palabras clave de permiso:

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

Otorgar privilegio para crear nuevas bases de datos a un usuario

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

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

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

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

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

Otorgar privilegio para leer una tabla de base de datos específica a 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 para un usuario

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

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

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

Otorgar privilegio para eliminar bases de datos a un usuario

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

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

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

Otorgar todos los privilegios a un usuario

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

Revocar un privilegio

Ejemplo para revocar el DROP privilegio 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';