Gestión de permisos de la serie MySQL

Gestión de permisos de la serie MySQL

Operación y Mantenimiento YouthO & M Youth

Descripción de la serie de artículos

Los artículos de la serie MySQL incluyen instalación de software, uso específico, respaldo y recuperación, etc., que se utilizan principalmente para registrar notas de estudio personales La versión principal de MySQL utilizada es 5.7.28 y la versión del sistema del servidor es CentOS 7.5. Este capítulo trata sobre la gestión de la autoridad de la base de datos.

Autoridad

¿Qué son los permisos?

① Los permisos de MySQL están diseñados para usuarios. Los administradores pueden asignar diferentes permisos a diferentes usuarios. Los objetos de los permisos son bases de datos y tablas. Es decir, el comportamiento del objeto de operación del usuario está restringido.

② Linux es diferente de MySQL. Los permisos de Linux son más atributos de archivo. Por ejemplo, podemos modificar los atributos de permisos de archivo a través de comandos como chmod o chown.

¿Cuál es la manifestación de los permisos?

① Los permisos de MySQL se expresan en forma de permisos de agregar, eliminar, modificar y verificar por parte del usuario
② Los permisos de Linux generalmente se expresan como: atributos rwx de archivos

¿Cómo comprobar los permisos?

La base de datos MySQL puede usar el comando show para ver la información de permisos del usuario.

  • Ver formatos comunes para la autorización de usuarios

show grants for 用户;
  • Ver la información de permisos del usuario de yunwei

show grants for yunwei@'%';

Gestión de permisos de la serie MySQL

Cómo agregar permisos

El comando utilizado para agregar permisos a la base de datos MySQL se otorga y la autorización agregada no entrará en vigencia hasta que el usuario se vuelva a conectar.


版本说明
① 8.0版本之前,grant命令可以用于创建用户和权限赋值

② 8.0(含)版本之后,grant命令只能用于权限赋值

③ 为了命令能够通用,本文使用通用的方式进行配置
  • Agregue un formato común para la autorización:

grant 权限1,权限2,权限... on 对象(数据库/表) to 用户;

Agregar permisos de administrador


En términos generales, el administrador tiene todos los permisos. Al agregar un usuario administrador, el campo de permiso se puede configurar mediante el parámetro ALL para asignar todos los permisos de objeto de operación al usuario administrador.

  • Cree un usuario administrador1 y otorgue privilegios de administrador.

create user user01@'%' identified by '123';  # 创建用户
grant all on *.* to user01@'%'; # all为所有权限 *.* 表示所有的数据库和表
  • Si el administrador necesita tener autoridad de gestión para otros usuarios, agregue el campo con opción de concesión después de la asignación

grant all on *.* to user01@'%' with grant option;
  • Pruebe la situación de la gestión de la autoridad del usuario cuando no hay una autoridad administrativa del usuario.

select user,host from mysql.user; # 查看用户
grant select on mysql.* to yunwei@'%'; # 赋予mysql数据库所有表的select权限给yunwei

Gestión de permisos de la serie MySQL

  • Probar la gestión de derechos de usuario cuando existen derechos de gestión de usuarios
    Gestión de permisos de la serie MySQL

  • Si la autoridad del usuario no ha cambiado, utilice el siguiente comando para actualizar la información de autoridad

flush privileges;

Agregar permisos para permisos de usuario normales


En términos generales, la gestión de la autoridad de los usuarios normales se refinará a una determinada base de datos o tabla. Por ejemplo, los usuarios de la aplicación solo pueden administrar la base de datos de la aplicación, y los usuarios de yunwei solo pueden administrar la tabla de usuarios de la base de datos de la aplicación.

  • Otorgar permisos de creación de tablas y consulta de base de datos de la aplicación de usuario user02

grant create,select on app.* to 'user02'@'%'; # 赋予权限
flush privileges; # 刷新权限信息
show grants for 'user02'@'%'; # 查看用户权限

Gestión de permisos de la serie MySQL

  • Pruebe user02 para crear un usuario de tabla y ver la tabla en los datos de la aplicación

select user(); #查看当前用户
create table app.user(id int,name varchar(20));

Gestión de permisos de la serie MySQL

  • Pruebe las otras operaciones de user02 en la base de datos de la aplicación y las operaciones en otras bases de datos
    Gestión de permisos de la serie MySQL

✎ Nota

¡La base de datos MySQL no sobrescribirá los permisos originales cuando esté autorizada varias veces! Por ejemplo, user01 tiene permiso de selección, y la próxima vez que autorice el permiso de creación para user01, user01 tendrá permisos de selección y creación.
Gestión de permisos de la serie MySQL

Cómo eliminar la autorización

La base de datos MySQL generalmente usa el comando revoke para eliminar los permisos del usuario, y la autorización eliminada no entrará en vigencia hasta que el usuario se vuelva a conectar.

  • Formato general para eliminar la autorización:

revoke 权限 on 对象 from 用户;
  • Eliminar el permiso de selección del usuario user02 para la base de datos de la aplicación

show grants for 'user02'@'%'; # 查看用户权限
revoke select on app.* from 'user02'@'%'; # 删除授权
show grants for 'user02'@'%';  # 查看用户权限 

Gestión de permisos de la serie MySQL

  • Eliminar todos los permisos del usuario user02 a la biblioteca de aplicaciones

show grants for 'user02'@'%'; # 查看用户权限
revoke all on app.* from 'user02'@'%'; # 删除授权
show grants for 'user02'@'%';  # 查看用户权限

Gestión de permisos de la serie MySQL

Cómo ver los permisos

Ver permisos permisos de usuario


  • Los permisos de usuario se pueden ver con el comando show y también se pueden ver en los registros de la tabla de la base de datos.

show grants for 用户;
  • Ver los registros en la tabla de datos

select * from mysql.user where user='user02'\G;

Gestión de permisos de la serie MySQL

Ver permisos para ver la información de permisos de la base de datos


  • La información de permisos de la base de datos se almacena en la tabla mysql.db

select * from mysql.db where Db='app'\G;

Gestión de permisos de la serie MySQL

Ver permisos y otros permisos de objetos


Gestión de permisos de la serie MySQL

Permisos comunes de MySQL

Gestión de permisos de la serie MySQL

Mapa mental personal

Gestión de permisos de la serie MySQL

Supongo que te gusta

Origin blog.51cto.com/15082392/2656373
Recomendado
Clasificación