Experimento 4 Seguridad e integridad de la base de datos

Experimento 4 Seguridad e integridad de la base de datos

uno. Propósito del experimento
1. Profundizar la comprensión de la seguridad e integridad de la base de datos
2. Aprender a autorizar y reciclar
4. Comprender y experimentar el papel de la integridad de la entidad de la base de datos, la integridad referencial y las restricciones de integridad definidas por el usuario.
2. Contenido experimental

Autorice y reclame permisos para cada tabla y usuario que se haya creado. Después de que se complete la operación, verifique si el usuario autorizado realmente tiene derecho a operar los datos otorgados, y si el usuario después de la operación de revocación de poder realmente pierde la revocación El derecho para manipular datos.
Defina varias restricciones de integridad y luego ingrese varios datos para verificar el efecto de las restricciones

  1. Establezca el permiso de consulta para el usuario a en la tabla SPJ . Inicie sesión como para verificar los permisos de un .

procedimiento del experimento:

(1) Primero cree un usuario, y la contraseña es "contraseña":

CREAR USUARIO 'a' IDENTIFICADO CON mysql_native_password BY'password';

      (2) Verificar el permiso de un antes de la autorización:

             Acceso:

Ejecute la instrucción de consulta:

SELECCIONA

de spj

Se encontró que no hay acceso a la base de datos:

(3) Autorizar de nuevo:

OTORGAR SELECCIÓN

en spj

A un;

      (4) Inicie sesión para verificar la autoridad de un:

SELECCIONA

de spj

            

Resultados experimentales:

crear:

Autorización:

Análisis de resultados:

Al crear un usuario, cree 'a'@%, no cree a@host, de lo contrario no se puede autorizar.

  1. Configure el usuario b para que tenga permiso de modificación en la lista S y la lista P , y requiera que b pueda otorgar este permiso a otro usuario c . Inicie sesión con b y c respectivamente y verifique los permisos de b y c .

procedimiento del experimento:

(1) Crear usuario b con contraseña "bpassword":

CREAR USUARIO 'b' IDENTIFICADO CON mysql_native_password BY'bpassword';

(2) Crear c usuario con contraseña "cpassword":

CREAR USUARIO 'c' IDENTIFICADO CON mysql_native_password BY'cpassword';

      (3) Autorizar (otorgar permisos de consulta y modificación, solo no se permiten permisos de modificación):

OTORGAR SELECCIÓN

ENCENDIDO

Ab;

ACTUALIZACIÓN DE LA SUBVENCIÓN

ENCENDIDO

A b

CON OPCIÓN DE BECA;

OTORGAR SELECCIÓN

En P

Ab;

ACTUALIZACIÓN DE LA SUBVENCIÓN

En P

A b

CON OPCIÓN DE BECA;

      (4) Inicie sesión en el usuario b y verifique los permisos:

            

(5) Inicie sesión b y cambie el SNAME en la tabla s5 de s a "for the people" y la ciudad a "Beijing"

ACTUALIZAR

SET SNAME='para la gente',CITY='Pekín'

DONDE sno='S1';

(6) Cambie p1 en la tabla p a tornillo y cambie el color a rojo

ACTUALIZAR pág.

SET PNAME='tornillo',COLOR='rojo'

DONDE pno='p1';

     

(7) Inicie sesión en b, ejecute la autoridad de autorización y otorgue a c la autoridad de consulta y modificación de las tablas s y p

OTORGAR SELECCIÓN

ENCENDIDO

A c;

ACTUALIZACIÓN DE LA SUBVENCIÓN

ENCENDIDO

a c

OTORGAR SELECCIÓN

En P

A c;

ACTUALIZACIÓN DE LA SUBVENCIÓN

En P

a c

(8) Inicie sesión en c, cambie el SNAME en la tabla s5 de s a "Weimin" y la ciudad a "Shanghai"

ACTUALIZAR

SET SNAME='para la gente', CITY='Shanghái'

DONDE sno='S1';

(9) Cambie p1 en la tabla p a una nuez y cambie el color a azul

ACTUALIZAR pág.

SET PNAME='Tuerca',COLOR='Azul'

DONDE pno='p1';

Resultados experimentales:

(1) Crear usuario b con contraseña "bpassword":

(2) Crear c usuario con contraseña "cpassword":

      (3) Autorizar (otorgar permisos de consulta y modificación, solo no se permiten permisos de modificación):

      (4) Inicie sesión en el usuario b y verifique los permisos:

            

(5) Inicie sesión b y cambie el SNAME en la tabla s5 de s a "for the people" y la ciudad a "Beijing"

(6) Cambie p1 en la tabla p a tornillo y cambie el color a rojo

            

(7) Inicie sesión en b, ejecute la autoridad de autorización y otorgue a c la autoridad de consulta y modificación de las tablas s y p

(8) Inicie sesión en c, cambie el SNAME en la tabla s5 de s a "Weimin" y la ciudad a "Shanghai"

       (9) Cambie p1 en la tabla p a una nuez y cambie el color a azul

Análisis de resultados:

        Al otorgar permiso de modificación a un usuario, recuerde otorgar permiso de consulta al mismo tiempo, y la actualización no se puede realizar sin seleccionar

  1. Recupere los permisos de los usuarios ayb , y verifique el estado de los permisos del usuario c .

procedimiento del experimento:

      (1) Recuperar el permiso de consulta de a en la tabla spj:

REVOCAR SELECCIONAR

en spj

A partir de una;

      (2) Retirar el permiso de b para modificar las tablas s y p:

REVOCAR ACTUALIZACIÓN

en s

Desde B;

REVOCAR ACTUALIZACIÓN

en P

Desde B;

(3) Verifique si el usuario c todavía tiene permiso para cambiar las tablas s y p:

iniciar sesión c:

Cambie el SNAME en la tabla s5 a "Weiguo" y la ciudad a "Guangzhou"

ACTUALIZAR

SET SNAME='para el país',CITY='Guangzhou'

DONDE sno='S1';

Cambie p1 en la tabla p a tornillo y cambie el color a verde

ACTUALIZAR pág.

SET PNAME='tornillo',COLOR='verde'

DONDE pno='p1';

Resultados experimentales:

      (1) Recuperar el permiso de consulta de a en la tabla spj:

      (2) Retirar el permiso de b para modificar las tablas s y p:

      (3) Verifique si el usuario c todavía tiene permiso para cambiar las tablas s y p:

       

Análisis de resultados:

       Solo se retira la autoridad de b, pero la autoridad otorgada a c por b no se retira, lo que indica que mysql no ha realizado una recuperación en cascada.

4. Para la tabla creada en el Experimento 1 , use la interfaz gráfica de usuario para establecer una relación de clave externa y verificar el rol de la clave externa.

procedimiento del experimento:

  1. Clic derecho--Tabla de diseño--Clave externa--Crear clave externa

 

(2) Verifique el rol de la clave externa: (inserte un dato que viole la restricción de clave externa en la tabla spj)
inserte ('S8', 'P1', 'J9', 200) en la tabla spj:
INSERTAR EN VALORES spj ('S8', 'P1', 'J9', 300);
Resultados experimentales:

 Análisis de resultados:
    la tabla S es hasta S6, la tabla p es hasta P6 y la tabla j es hasta J7. Los datos insertados violan la restricción de clave externa, por lo que se informará un error.

 5. Para la tabla creada en el Experimento 1, establezca que el color de las partes debe estar dentro de los siete rangos de colores de rojo, naranja, amarillo, verde, azul, azul y morado, y el peso de las partes no puede exceder las 50 restricciones, y dar estas dos restricciones Denominación condicional, el nombre es la ortografía completa de su propio nombre.

procedimiento del experimento:

(1) Agregar restricciones:

ALTERAR TABLA p

AGREGAR RESTRICCIÓN pengzhen COMPROBAR (COLOR en ('rojo', 'naranja', 'amarillo', 'verde', 'verde', 'azul', 'púrpura') y PESO <= 50);

(2) Para verificar si la restricción es útil, cambie el "verde" de P1 en la tabla p a "rojo"

ACTUALIZAR pág.

SET color='rojo'

DONDE pno='P1';

Resultados experimentales:

(1) Agregar restricciones:

(2) Para verificar si la restricción es útil, cambie el "verde" de P1 en la tabla p a "rojo"

Análisis de resultados:

        Para verificar si las restricciones son útiles, cambie el "verde" de P1 en la tabla p a "rojo", y se informará un error cuando se ejecute, y la restricción pengzhen ya existe. Los datos no se pueden cambiar.

6. Establezca el número de piezas suministradas en la tabla SPJ en no más de 1000

procedimiento del experimento:

      (1) Agregar restricciones:

ALTER TABLE spj

agregar COMPROBAR (CANTIDAD <= 1000);

  1. Cambie la CANTIDAD del primer dato a 1200 en la tabla spj

ACTUALIZAR spj

ESTABLECER CANTIDAD=1200

DONDE sno='S1' AND pno='P1' AND jno='J4';

Resultados experimentales:

  1. Agregar restricciones:

(2) Cambie la CANTIDAD del primer dato a 1200 en la tabla spj

Análisis de resultados:

Debido a la existencia de restricciones, los datos no se pueden modificar a un número superior a 1000.

7. Configure el número de proveedor en la tabla S para que comience con la letra 'S'
Proceso experimental:
ALTER TABLE s
agregue CHECK(sno like 's%');
Resultados experimentales:
 
Análisis de resultados:
        cree restricciones, CHECK(sno like 's %')
 

8. Verifique la integridad de la entidad de cada tabla.
Proceso experimental:
-- Verificar la integridad de la entidad de la tabla s
-- (1) Insertar un dato normal en la tabla s
INSERTAR EN s VALORES('S7','Red Flag',10,'Jinan');
-- ( 2) Insertar una pieza de datos duplicados en la tabla s
INSERTAR EN s VALORES ('S7', 'Personas', 10, 'Qingdao'); -- ( 3
) Insertar una pieza de datos vacía en la tabla s
INSERTAR EN s VALORES ( '', 'Innovación', 10, 'Guangzhou');

-- Verificar la integridad de la entidad de la tabla p
-- (1) Insertar un dato normal en la tabla p
INSERTAR EN VALORES p('P7','neumático',null,20);
-- (2) Insertar una pieza en la tabla p Datos repetidos
INSERTAR EN VALORES p ('P7', 'neumático', nulo, 20);
-- (3) Insertar datos vacíos en la tabla p
INSERTAR EN VALORES p (NULO, 'clavo', nulo, 5 );

-- Verificar la integridad de la entidad de la tabla j
-- (1) Insertar un dato normal en la tabla j
INSERTAR EN j VALORES('J8','Fábrica de automóviles','Shanghai');
-- (2) Insertar en la tabla j Un dato repetido
INSERT INTO j VALUES('J8','Car Factory','Shanghai');
-- (3) Inserta un dato vacío en la tabla j
INSERT INTO j VALUES(NULL,'Tire Factory' ,'Nanjing');

-- Verifique la integridad de la entidad de la tabla spj
-- (1) Inserte un dato normal en la tabla spj
INSERT INTO spj VALUES('S7','P6','J7',300);
-- (2) Insertar en la tabla spj Insertar datos duplicados
INSERTAR EN VALORES spj('S7','P6','J7',300);
-- (3) Insertar datos vacíos en la tabla spj
INSERTAR EN VALORES spj('S7' ,NULL,' J7',300);
Resultados experimentales:
-- Verificar la integridad de la entidad de la tabla s
-- (1) Insertar un fragmento de datos normales en la tabla s ('S7','Red Flag',10,'Jinan ')
 

-- (2) Inserte un dato duplicado en la tabla s ('S7','Personas',10,'Qingdao')

-- (3) Inserte un dato vacío en la tabla s ('','Innovación',10,'Guangzhou')

--Verificar la integridad de la entidad de la tabla p

-- (1) Insertar un dato normal en la tabla p ('P7','neumático',null,20)

-- (2) Insertar un dato repetido en la tabla p ('P7','neumático',null,20)

-- (3) Insertar un dato vacío en la tabla p (NULL,'nail',null,5)

-- Verificar la integridad de la entidad de la tabla j

-- (1) Inserte un dato normal en la tabla j ('J8', 'fábrica de automóviles', 'Shanghai')

-- (2) Inserte una pieza de datos duplicados en la tabla j ('J8', 'fábrica de automóviles', 'Shanghai')

-- (3) Insertar datos vacíos en la tabla j (NULL, 'fábrica de neumáticos', 'Nanjing')

--Verificar la integridad de la entidad de la tabla spj

-- (1) Inserte un dato normal en la tabla spj ('S7','P6','J7',300)

-- (2) Inserte un dato duplicado en la tabla spj ('S7','P6','J7',300)

-- (3) Insertar datos vacíos en la tabla spj ('S7', NULL, 'J7', 300)

Análisis de resultados:

        Debido a las restricciones de integridad definidas cuando se crean las tablas s, p y j, no se pueden insertar datos duplicados ni datos cuyo código principal sea nulo. La declaración anterior verifica las restricciones de integridad.

Supongo que te gusta

Origin blog.csdn.net/weixin_41957626/article/details/129739883
Recomendado
Clasificación