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.
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;
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
Vea todos los privilegios disponibles aquí.