Bienvenido a re-orientation! Esperamos que encuentres lo que buscas

Creación de las tablas de Base de Datos MySQL. Inserción de los datos de pruebas


Parte del manual paso a paso para desarrollar una aplicación web con Spring Framework + Spring Security contra una base de datos MySQL.

Veremos ahora como preparar el entorno de Base de Datos (en lo adelante BDD) para implementar nuestro caso de uso ejemplo:

Nos conectamos a la instancia de BDD del servidor, donde vamos crear las tabla en las que insertaremos la información de los usuarios (USERS), los roles disponibles en nuestra aplicación (AUTHORITY_LIST) , así como los roles asignados a los usuarios concretos (AUTHORITIES).

La estructura de las tablas AUTHORITIES y AUTHORITY_LIST son las que Spring Security recomienda. Sin embargo en el caso de la tabla de USERS, se han añadido los campos de: NOMBRE, APELLIDOS, FECHA_NACIMIENTO, SEXO, FECHA_ALTA, FECHA_MODIFICACION, HUSO_HORARIO y CORREO_ELECTRONICO_PPAL.

Creación de tabla de usuarios

CREATE TABLE users (
	USER_ID INT(10) AUTO_INCREMENT PRIMARY KEY,
	USERNAME VARCHAR(100) NOT NULL,
	PASSWORD VARCHAR(100) NOT NULL,  
	ENABLED TINYINT(1) NOT NULL,
	NOMBRE VARCHAR(100),
	APELLIDOS VARCHAR(100),
	FECHA_NACIMIENTO DATE,  
	SEXO VARCHAR(1),
	FECHA_ALTA TIMESTAMP DEFAULT CURRENT_TIMESTAMP, 
	FECHA_MODIFICACION TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, 
	HUSO_HORARIO VARCHAR(50),
	CORREO_ELECTRONICO_PPAL VARCHAR(100),
	TRACKING TINYINT(1)
);

Creación de tabla de roles

CREATE TABLE AUTHORITY_LIST (
	AUTHORITY VARCHAR(50) NOT NULL PRIMARY KEY, 
	DESCRIPTION VARCHAR(100) 
);

Creación de tabla de usuarios-roles

CREATE TABLE AUTHORITIES (	
	USERNAME VARCHAR(100) NOT NULL REFERENCES USERS(USERNAME),
	AUTHORITY VARCHAR(50) NOT NULL REFERENCES AUTHORITY_LIST(AUTHORITY),
	PRIMARY KEY (USERNAME, AUTHORITY)
);

Inserción de datos de pruebas en las tablas creadas

Una vez creadas las tablas, vamos a insertar los datos de prueba para nuestro ejemplo.

INSERT INTO users (USERNAME,PASSWORD,ENABLED, NOMBRE, APELLIDOS, FECHA_NACIMIENTO) 
   VALUES ('usuario_administrador','pmWkWSBCL51Bfkhn79xPuKBKHz//H6B+mY6G9/eieuM=',1, 'MiNombre','MiApellido', '1975-01-17');
INSERT INTO users (USERNAME,PASSWORD,ENABLED, NOMBRE, APELLIDOS, FECHA_NACIMIENTO) 
   VALUES ('usuario_gestor','pmWkWSBCL51Bfkhn79xPuKBKHz//H6B+mY6G9/eieuM=',1, 'MiNombre','MiApellido', '1972-10-17');

INSERT INTO AUTHORITY_LIST (AUTHORITY,DESCRIPTION) values ('ROLE_USER','Funcionalidades para usuarios basicos');
INSERT INTO AUTHORITY_LIST (AUTHORITY,DESCRIPTION) values ('ROLE_ADMIN','Funcionalidades para el admin de la plataforma');

Insert into AUTHORITIES (USERNAME,AUTHORITY) values ('usuario_administrador','ROLE_ADMIN');
Insert into AUTHORITIES (USERNAME,AUTHORITY) values ('usuario_gestor','ROLE_USER');

Ya tenemos el entorno de BDD listo. En el próximo post comenzaremos a construir la aplicación web.

Terminos Tecnología: