Idioma
Categoría
Buscar

Administrar usuarios y privilegios en mysql

Cómo agregar, eliminar, consultar usuarios activos y sus privilegios, cómo crear contraseñas con caducidad o inicio de sesión sin contraseña. Vea cómo configurar permisos con bases de datos y

En Banco de datos Por Rudi Drusian Lange
Publicado el
Última actualización

Cómo buscar usuarios activos, agregar nuevos y establecer sus contraseñas o cómo crear un inicio de sesión sin contraseña. Establezca una fecha de vencimiento para la contraseña o que caduque en el primer acceso. Vea cómo eliminar usuarios, cambiar la contraseña del usuario que inició sesión o de cualquier otro usuario registrado. Cambie el acceso actual y establezca permisos específicos para cada usuario con cada base de datos y tabla. Elimine permisos y vea la tabla de privilegios disponibles.

Comandos MySQL tomados de la versión 8.0 del manual.

Crear usuario

Agregar un usuario se puede realizar mediante el comando create user o directamente con el comando grant, que se verá más adelante.

Mysql

# Crear usuario teresa con 'mi_contraseña'
CREATE USER 'teresa'@'localhost'
  IDENTIFIED BY 'mi_contraseña';

# Crear usuario sin contraseña
CREATE USER 'teresa'@'localhost';

# La contraseña caduca en el primer
# acesso y requiere una nueva
CREATE USER 'teresa'@'localhost' IDENTIFIED BY 'nueva_contraseña' PASSWORD EXPIRE; # Utiliza el complemento de autenticación
# caching_sha2_password, define que la contraseña
# caduca cada 180 días, habilita el bloqueo de
# cuenta durante 2 días al llegar a 3 intentos de
# inicio de sesión con contraseña incorrecta
CREATE USER 'teresa'@'localhost'
IDENTIFIED WITH caching_sha2_password BY 'mi_contraseña'
  PASSWORD EXPIRE INTERVAL 180 DAY
  FAILED_LOGIN_ATTEMPTS 3 PASSWORD_LOCK_TIME 2;

¡Nunca utilice un usuario sin contraseña en un entorno de producción! Sólo para facilitar el acceso en entornos controlados.

En los ejemplos de este artículo, siempre que se manipule usuarios, se considerará el contexto de la maquina local, esto es lo que hace @localhost. Para garantizar el acceso remoto al usuario, reemplace localhost con la IP deseada (teresa@192.168.0.55).

Eliminar usuario

Mysql

DROP USER 'teresa'@'localhost';

Listar usuarios

Cómo mostrar la información del usuario, consulte a continuación acerca de los permisos.

Mysql

# Todos los usuarios
SELECT user FROM mysql.user;

# Todos los usuarios distintos
SELECT DISTINCT User FROM mysql.user;

# Usuarios y hosts desde los que pueden conectarse
SELECT user,host FROM mysql.user;

# Usuarios, hosts y contraseñas cifradas
SELECT user,host,password FROM mysql.user;

Cambiar la contraseña

Mysql

# Cambiar la contraseña del usuario conectado
SET PASSWORD = PASSWORD('nueva_contraseña');

# Cambiar la contraseña de un usuario específico
SET PASSWORD FOR 'teresa'@'localhost' = PASSWORD('nueva_contraseña');

Listar privilegios

Utilice show grants para verificar los permisos..

Title

# Mostrar los privilegios de un usuario
SHOW GRANTS FOR 'teresa'@'localhost';

# Mostar los privilegios del usuario conectado
SHOW GRANTS;

Conceder privilegios

El comando grant es responsable de administrar los privilegios otorgados a los usuarios.

Mysql

# Cree el usuario teresa con 'mi_contraseña' y
# otorgue acceso completo a la base de datos bd_tienda
GRANT ALL ON bd_tienda.* TO 'teresa'@'localhost' IDENTIFIED BY 'mi_contraseña'; # Otorga privilegios completos a teresa
# en todas las tablas de la base de datos
# bd_tienda usando su contraseña actual
GRANT ALL ON bd_tienda.* TO 'teresa'@'localhost'; # Otorga solo SELECT a teresa en la tabla de
# clientes en la base de datos de bd_tienda
GRANT SELECT ON bd_tienda.clientes TO 'teresa'@'localhost';

Eliminar privilegio

El comando revoke elimina los permisos del usuario.

Mysql

# Elimina el privilegio INSERT en todas las
# base de datos y tablas para el usuario teresa
REVOKE INSERT ON *.* FROM 'teresa'@'localhost'; # Elimina el privilegio DELETE en la base de
# datos y sus tablas para el usuario teresa
REVOKE DELETE ON bd_tienda.* FROM 'teresa'@'localhost'; # Elimina todos los privilegios del usuario teresa
REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'teresa'@'localhost';

Lista de privilegios

Lista de algunos de los privilegios que se pueden utilizar con los comandos grant y revoke.

Privilégio

Coluna

Contexto

Create_priv
databases, tables, or indexes
Drop_priv
databases, tables, or views
Grant_priv
databases, tables, or stored routines
Lock_tables_priv
databases
References_priv
databases or tables
Event_priv
databases
Alter_priv
tables
Delete_priv
tables
Index_priv
tables
Insert_priv
tables or columns
Select_priv
tables or columns
Update_priv
tables or columns
Create_tmp_table_priv
tables
Trigger_priv
tables
Create_view_priv
views
Show_view_priv
views
Alter_routine_priv
stored routines
Create_routine_priv
stored routines
Execute_priv
stored routines
File_priv
file access on server host
Create_tablespace_priv
server administration
Create_user_priv
server administration
Process_priv
server administration
see proxies_priv table
server administration
Reload_priv
server administration
Repl_client_priv
server administration
Repl_slave_priv
server administration
Show_db_priv
server administration
Shutdown_priv
server administration
Super_priv
server administration
 
server administration
 
server administration

Vea todos los privilegios disponibles aquí.

Referencias

Este no es mi idioma original y no lo hablo muy bien. Utilicé mis pocos conocimientos y herramientas de traducción para redactar el texto de este artículo. Disculpe los posibles errores ortográficos o gramaticales, se agradecen sugerencias de correcciones y se pueden enviar al correo electrónico de contacto que se encuentra en el pie de página del sitio. Mi intención es compartir algunos conocimientos y espero que esta traducción sea lo suficientemente buena.