Notas de estudio de MySQL. Gestión de seguridad

Gestión de usuarios

Agregar y eliminar usuarios

1. Agregar usuario
Puede utilizar CREAR USUARIO para agregar uno o más usuarios.
Formato de sintaxis:CREATE USER '用户名' @'主机名' IDENTIFIED BY PASSWORD,USER '用户名' @'主机名' IDENTIFIED BY PASSWORD...

create user
'user001'@'localhost' identified by 'root', 
'user002'@'localhost' identified by 'root';

Crea dos usuarios aquí

mysql> create user'user001'@'localhost' identified by 'root', 'user002'@'localhost' identified by 'root';
Query OK, 0 rows affected (0.01 sec)

mysql> use mysql;
Database changed
mysql> select * from user;

Inserte la descripción de la imagen aquí
Creado
aquí, intente iniciar sesión el usuario user001 Este usuario
Inserte la descripción de la imagen aquí
ha iniciado sesión
2. Eliminar usuario
Formato de sintaxis: DROP USER 用户
eliminar usuario user001 aquí. Si elimina
Inserte la descripción de la imagen aquí
este usuario, habrá un error. Para volver a la cuenta raíz,
Inserte la descripción de la imagen aquí
OK se ha realizado correctamente borró al usuario

Modificar nombre de usuario y contraseña

1. Modifique el
formato de sintaxis del nombre de usuario : rename user '用户名' @'主机名' to '新用户名' @'主机名';
aquí modifique el usuario user002 a user001

mysql> rename user 'user002'@'localhost' to 'user001'@'localhost';
Query OK, 0 rows affected (0.00 sec)

mysql> use mysql;
Database changed
mysql> select * from user;

Inserte la descripción de la imagen aquí
Se completó la
modificación 2. Modifique la contraseña de usuario
Formato de sintaxis: set password for '用户名' @'主机名'=password('新密码');
aquí, modifique la contraseña de user001 a python

mysql> set password for 'user001'@'localhost' =password('python');
Query OK, 0 rows affected (0.00 sec)

mysql>

gestión de autoridad

Permiso concedido

Los permisos otorgados son los siguientes
: 1. Permisos de columna: relacionados con una columna específica en la
tabla 2. Permisos de tabla: relacionados con todos los datos en una tabla específica
3. Permisos de base de datos: relacionados con todas las tablas en una base
de datos específica 4 .Permisos de usuario : relacionado con todas las bases de datos MySQL, como eliminar una base de datos existente o crear un nuevo permiso de base de datos para
otorgar permisos de tabla
Inserte la descripción de la imagen aquí
aquí para otorgar permisos de tabla de estudiante a user001select

mysql> grant select
    -> on student
    -> to user001@localhost;
Query OK, 0 rows affected (0.00 sec)

En este momento, bajo el usuario user001, puede consultar la tabla de estudiantes para
Inserte la descripción de la imagen aquí
otorgar permisos de columna.
Los permisos de columna solo pueden tomar SELECCIONAR, INSERTAR, ACTUALIZAR, seguidos de los nombres de columna.
Otorgar permisos de actualización al usuario001

mysql> grant update(sno,sname,sage)
    -> on student
    -> to user001@localhost;
Query OK, 0 rows affected (0.00 sec)
mysql> update student set sage=30 where sno='2018001001';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> select * from student;
+------------+--------------+--------+------+-------+
| sno        | sname        | sex    | sage | sdept |
+------------+--------------+--------+------+-------+
| 2018001001 | zhangsan     | male   |   30 | cs    |
| 2018001002 | lisi         | female |   19 | MA    |
| 2018001003 | jack         | male   |   20 | CS    |
| 2018001004 | clinton      | male   |   21 | IS    |
| 2018001005 | trump        | male   |   19 | IS    |
| 2018001006 | putin        | male   |   20 | CS    |
| 2018001007 | starlin      | male   |   19 | MA    |
| 2018001008 | hilery       | female |   19 | IS    |
| 2018001009 | zhangming    | female |   20 | CS    |
| 2018001010 | ligang       | male   |   19 | MA    |
| 2018001011 | 令狐冲       | male   |   18 | cs    |
| 2018001012 | 任盈盈       | female |   19 | MA    |
| 2018001013 | 岳不群       | male   |   20 | CS    |
| 2018001014 | 余沧海       | male   |   21 | IS    |
| 2018001015 | 林平之       | male   |   19 | IS    |
| 2018001016 | 岳灵珊       | male   |   20 | CS    |
| 2018001017 | 朱元璋       | male   |   19 | MA    |
| 2018001018 | 郑成功       | female |   19 | IS    |
| 2018001019 | 爱新觉罗玄烨 | female |   20 | CS    |
| 2018001020 | 慈禧         | male   |   19 | MA    |
+------------+--------------+--------+------+-------+
20 rows in set (0.00 sec)

mysql> update student set sdept='MA' where sno='2018001001';
ERROR 1143 (42000): UPDATE command denied to user 'user001'@'localhost' for column 'sdept' in table 'student'
mysql>

Debido a que no se otorga el permiso user001update sdept, se informará un error para
otorgar permisos de base de datos.
Inserte la descripción de la imagen aquí
Otorgue permisos de selección de user001 para todas las tablas en la base de datos yingmo.
Primero cree dos tablas en la base de datos yingmo.
Inserte la descripción de la imagen aquí

mysql> grant select
    -> on yingmo.*
    -> to user001@localhost;
Query OK, 0 rows affected (0.00 sec)

En este momento, se puede ver en user001 user.
Inserte la descripción de la imagen aquí
Otorgue a user001 todos los permisos de base de datos en todas las bases de datos de yingmo.

grant all
on * 
to user001@localhost;

Otorgar permisos de usuario
Inserte la descripción de la imagen aquí
Otorgar a user001 crear, modificar y eliminar permisos en todas las tablas de la base de datos

grant create,alter,drop
on *.*
to user001@localhost;

Transferencia y restricción de permisos

mysql> grant select
    -> on yingmo.student
    -> to user001@localhost
    -> with grant option;
Query OK, 0 rows affected (0.00 sec)

mysql>

Aquí el permiso de selección se ha otorgado a user001, aquí el permiso de selección se pasa a user002, y el usuario de user002 se crea en este momento

mysql> create user
    -> 'user002'@'localhost' identified by 'root';
Query OK, 0 rows affected (0.00 sec)

Inserte la descripción de la imagen aquí
Login user002
Inserte la descripción de la imagen aquí
permisos de usuario han sido transferidos
Este método de transferencia parece no tener restricciones, ¿cómo limitarlo?
Como restringir user002 para procesar una declaración de selección cada dos horas

mysql> grant select
    -> on yingmo.student
    -> to user002@localhost
    -> with max_queries_per_hour 2;
Query OK, 0 rows affected (0.00 sec)

Inserte la descripción de la imagen aquí

Reclamación de permisos

Reclamar el permiso de selección de user001 en la mesa de estudiantes

mysql> revoke select
    -> on student
    -> from user001@localhost;

usar

mysql> revoke all privileges,grant option
    -> from user001@localhost;
Query OK, 0 rows affected (2.08 sec)


Reclamar todos los permisos de user001 En este momento, la base de datos yingmo no se puede ver en user001 user
Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/qq_44862120/article/details/110288871
Recomendado
Clasificación