Usuario de gestión de base de datos MySQL
1. Administrar usuarios
1.1 Creación de usuarios
CREATE USER '用户名'@'来源地址' [IDENTIFIED BY [PASSWORD] '密码'];
- Nombre de usuario: especifique el nombre de usuario creado
- Dirección de origen: especifique en qué hosts puede iniciar sesión el usuario recién creado. Puede usar la dirección IP, el segmento de red y el nombre de host. Los usuarios locales pueden usar localhost. Para permitir que cualquier host inicie sesión puede usar el carácter comodín %.
- contraseña:
- Utilice una contraseña de texto sin formato, puede ingresar la contraseña directamente y mysql la cifrará automáticamente al insertarla en la base de datos.
- Para usar una contraseña cifrada, primero debe usar SELECTPASSWORD('contraseña'); para obtener el texto cifrado y luego agregar PASSWORD 'ciphertext'; a la declaración.
- Si se omite la parte "IDENTIFICADO POR", la contraseña del usuario estará vacía (no recomendado)
Ejemplo: crear usuario en texto claro
CREATE USER 'lilade'@'localhost' IDENTIFIED BY '123123';
Ejemplo: crear un usuario usando texto secreto
select password('abc123');
create user 'james'@'localhost' identified by password '*6691484EA6B50DDDE1926A220DA01FA9E575C18A';
1.2 Ver información del usuario
El usuario creado se almacena en la tabla de usuarios de la base de datos mysql.
use mysql;
select User,authentication_string,Host from user;
1.3 Cambiar nombre de usuario
rename user 'lilade'@'localhost' to 'DM'@'localhost';
1.4. Eliminar usuarios
drop user 'james'@'localhost';
1.5 Modificar la contraseña del usuario de inicio de sesión actual
set password = password('123456');
1.6 Cambiar las contraseñas de otros usuarios
set password for 'DM'@'localhost' = password('abc123');
1.7 Soluciones para contraseñas olvidadas
Olvidé la contraseña de MySQL
1. Modifique el archivo de configuración y agregue la configuración para que no se utilice la tabla de autorización al iniciar sesión en MySQL.
#进入配置文件
vim /etc/my.cnf
#添加此行
skip-grant-tables
2. Reinicie el servicio e inicie sesión para probar.
#重启服务
systemctl restart mysqld.service
#登录
mysql
3. Utilice la actualización para cambiar la contraseña de root y actualizar la base de datos.
#重设密码
update mysql.user set authentication_string = password('abc123') where user='root';
#刷新数据库
flush privileges;
4. Cierre sesión y vuelva a iniciar sesión para realizar la prueba.
mysql -uroot -pabc123
5. Modifique el archivo de configuración my.conf nuevamente y comente o elimine los comandos de configuración agregados anteriormente.
2. Autorización del usuario de la base de datos
2.1 Concesión de permisos
- Declaración GRANT: se utiliza especialmente para establecer los permisos de acceso de los usuarios de la base de datos. Cuando el nombre de usuario especificado no existe, la declaración GRANT creará un nuevo usuario; cuando el nombre de usuario especificado existe, la declaración GRANT se utiliza para modificar la información del usuario.
GRANT 权限列表 ON 数据库名.表名 TO '用户名'@'来源地址' [IDENTIFIED BY '密码'];
-
Lista de permisos: se utiliza para enumerar varias operaciones de base de datos autorizadas para su uso, separadas por comas, como "seleccionar, insertar, actualizar". Utilice "todos" para indicar todos los permisos, lo que le autoriza a realizar cualquier operación.
-
Nombre de la base de datos.Nombre de la tabla: se utiliza para especificar el nombre de la base de datos y la tabla para las operaciones de autorización, en las que se puede utilizar el carácter comodín "". Por ejemplo, utilice "kgc" para indicar que los objetos de la operación de autorización son todas tablas de la base de datos kgc.
-
'Nombre de usuario@dirección de origen': se utiliza para especificar el nombre de usuario y la dirección del cliente al que se le permite acceder, es decir, quién puede conectarse y desde dónde. La dirección de origen puede ser un nombre de dominio, una dirección IP o el carácter comodín "%" se puede utilizar para representar todas las direcciones en un área o segmento de red determinado, como "%.accp.com", "192.168.80. %", etc.
-
IDENTIFICADO POR: se utiliza para establecer la cadena de contraseña utilizada por los usuarios para conectarse a la base de datos. Al crear un nuevo usuario, si se omite la parte "IDENTIFICADO POR", la contraseña del usuario quedará en blanco.
Ejemplo: el usuario DM puede consultar localmente los registros de datos de todas las tablas en la base de datos ali, pero tiene prohibido consultar registros de tablas en otras bases de datos.
#切换mysql库
use mysql;
#查看用户
select User,authentication_string,Host from user;
#授权lilade用户
grant select on mysql.user to 'lilade'@'localhost' identified by 'abc123';
Inicie sesión y vea la biblioteca
#登录创建的库
mysql -lilade -pabc123
#查看数据库,表,结构
show databases;
use mysql;
show tables;
select * from user;
2.2 Ver permisos
SHOW GRANTS FOR 用户名@来源地址;
show grants for 'lilade'@'localhost';
2.3 Revocar permisos de usuario
#在root用户登录
mysql -uroot -pabc123
#查看lilade用户权限
show grants for 'lilade'@'localhost';
#撤销lilade用户查询权限
revoke select on mysql.* from 'lilade'@'localhost';