DROP DATABASE IF EXISTS `shiro`;
CREATE DATABASE `shiro`;
USE `shiro`;
CREATE TABLE `shiro`.`users` (
`id` BIGINT AUTO_INCREMENT,
`username` NVARCHAR(128),
`password` CHAR(64),
`password_salt` CHAR(64),
CONSTRAINT `pk_users` PRIMARY KEY (`id`)
)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8mb4
COLLATE = utf8mb4_bin;
CREATE UNIQUE INDEX `idx_users_username`
ON `shiro`.`users` (`username`);
CREATE TABLE `user_roles` (
`id` BIGINT AUTO_INCREMENT,
`username` NVARCHAR(128),
`role_name` NVARCHAR(128),
CONSTRAINT `pk_user_roles` PRIMARY KEY (`id`)
)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8mb4
COLLATE = utf8mb4_bin;
CREATE UNIQUE INDEX idx_user_roles
ON `shiro`.`user_roles` (`username`, `role_name`);
CREATE TABLE `roles_permissions` (
`id` BIGINT AUTO_INCREMENT,
`role_name` NVARCHAR(128),
`permission` NVARCHAR(128),
CONSTRAINT `pk_roles_permissions` PRIMARY KEY (`id`)
)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8mb4
COLLATE = utf8mb4_bin;
CREATE UNIQUE INDEX idx_roles_permissions
ON `shiro`.`roles_permissions` (`role_name`, `permission`);
INSERT INTO users (username, `password`) VALUE ('sod', MD5('sod'));
这只是最简单的版本,还需要继续定制