进学阁

业精于勤荒于嬉,行成于思毁于随

0%

自定义用户信息

回顾

在集成Oauth2.1认证中心,采用默认的数据结构实现了认证,但是大部分时候默认的用户结构并不能满足生产的需要,所以接下来以RBAC权限设计来实现用户

基于RBAC的权限设计

表结构

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
CREATE TABLE system_user(
ID INT NOT NULL AUTO_INCREMENT COMMENT '编号' ,
TENANT_ID VARCHAR(36) COMMENT '租户号' ,
USER_ID VARCHAR(36) NOT NULL COMMENT '用户编号' ,
DEPT_ID VARCHAR(36) COMMENT '部门编号' ,
USER_NAME VARCHAR(100) NOT NULL COMMENT '用户账号' ,
NICK_NAME VARCHAR(100) COMMENT '用户昵称' ,
EMAIL VARCHAR(100) COMMENT '用户邮箱' ,
PHONE_NUMBER VARCHAR(100) COMMENT '用户手机号' ,
SEX INT COMMENT '性别' ,
AVATAR VARCHAR(100) COMMENT '头像地址' ,
PASSWORD VARCHAR(100) NOT NULL COMMENT '密码' ,
STATUS INT NOT NULL COMMENT '用户状态' ,
DEL_FLAG INT NOT NULL COMMENT '删除标志(0代表存在 2代表删除)' ,
REVISION INT NOT NULL COMMENT '乐观锁' ,
CREATED_BY VARCHAR(100) COMMENT '创建人' ,
CREATED_TIME DATETIME COMMENT '创建时间' ,
UPDATED_BY VARCHAR(100) COMMENT '更新人' ,
UPDATED_TIME DATETIME COMMENT '更新时间' ,
PRIMARY KEY (ID)
) COMMENT = '用户表';


CREATE TABLE system_role(
ID INT NOT NULL AUTO_INCREMENT COMMENT 'ID;ID' ,
ROLE_ID VARCHAR(36) COMMENT '角色编号;角色编号' ,
ROLE_NAME VARCHAR(100) COMMENT '角色名称;角色名称' ,
ROLE_KEY VARCHAR(100) COMMENT '角色权限字符串;角色权限字符串' ,
ROLE_SORT INT COMMENT '显示顺序;显示顺序' ,
DATA_SCOPE VARCHAR(100) COMMENT '数据范围;数据范围(1:全部数据权限 2:自定数据权限 3:本部门数据权限 4:本部门及以下数据权限)' ,
MENU_CHECK_STRICTLY VARCHAR(1) COMMENT '菜单树选择项是否关联显示;菜单树选择项是否关联显示' ,
DEPT_CHECK_STRICTLY VARCHAR(1) COMMENT '部门树选择项是否关联显示;部门树选择项是否关联显示' ,
STATUS VARCHAR(1) COMMENT '角色状态(0正常 1停用);角色状态(0正常 1停用)' ,
DEL_FLAG VARCHAR(1) COMMENT '删除标志(0代表存在 2代表删除);删除标志(0代表存在 2代表删除)' ,
TENANT_ID VARCHAR(36) COMMENT '租户号;租户号' ,
REVISION INT NOT NULL COMMENT '乐观锁;乐观锁' ,
CREATED_BY VARCHAR(36) COMMENT '创建人' ,
CREATED_TIME DATETIME COMMENT '创建时间' ,
UPDATED_BY VARCHAR(36) COMMENT '更新人' ,
UPDATED_TIME DATETIME COMMENT '更新时间' ,
PRIMARY KEY (ID)
) COMMENT = '用户角色表';

CREATE TABLE system_menu(
ID INT NOT NULL AUTO_INCREMENT COMMENT 'ID' ,
MENU_ID VARCHAR(36) NOT NULL COMMENT '菜单编号;菜单编号' ,
TENANT_ID VARCHAR(36) NOT NULL COMMENT '租户号;租户号' ,
MENU_NAME VARCHAR(100) NOT NULL COMMENT '菜单名称;菜单名称' ,
PARENT_ID VARCHAR(36) COMMENT '父菜单ID;父菜单ID' ,
ORDER_NUM INT COMMENT '显示顺序;显示顺序' ,
PATH VARCHAR(100) COMMENT '路由地址;路由地址' ,
COMPONENT VARCHAR(100) COMMENT '组件路径;组件路径' ,
QUERY VARCHAR(100) COMMENT '路由参数;路由参数' ,
IS_FRAME VARCHAR(1) COMMENT '是否为外链(0是 1否);是否为外链(0是 1否)' ,
IS_CACHE VARCHAR(1) COMMENT '是否缓存(0缓存 1不缓存);是否缓存(0缓存 1不缓存)' ,
MENU_TYPE VARCHAR(32) COMMENT '菜单类型(M目录 C菜单 F按钮);菜单类型(M目录 C菜单 F按钮)' ,
VISIBLE VARCHAR(100) COMMENT '菜单状态(0显示 1隐藏);菜单状态(0显示 1隐藏)' ,
STATUS VARCHAR(100) COMMENT '菜单状态(0正常 1停用);菜单状态(0正常 1停用)' ,
PERMS VARCHAR(100) COMMENT '权限标识;权限标识' ,
ICON VARCHAR(100) COMMENT '菜单图标;菜单图标' ,
REVISION INT NOT NULL COMMENT '乐观锁;乐观锁' ,
CREATED_BY VARCHAR(100) COMMENT '创建人' ,
CREATED_TIME DATETIME COMMENT '创建时间' ,
UPDATED_BY VARCHAR(100) COMMENT '更新人' ,
UPDATED_TIME DATETIME COMMENT '更新时间' ,
PRIMARY KEY (ID,MENU_ID)
) COMMENT = '菜单权限表';

CREATE TABLE system_user_role(
ID INT NOT NULL AUTO_INCREMENT COMMENT 'ID;ID' ,
USER_ID VARCHAR(36) NOT NULL COMMENT '用户ID;用户ID' ,
ROLE_ID VARCHAR(36) NOT NULL COMMENT '角色ID;角色ID' ,
PRIMARY KEY (ID)
) COMMENT = '用户角色关联表';

CREATE TABLE system_role_menu(
ID INT NOT NULL AUTO_INCREMENT COMMENT 'ID;ID' ,
ROLE_ID VARCHAR(36) NOT NULL COMMENT '角色ID;角色ID' ,
MENU_ID VARCHAR(36) NOT NULL COMMENT '菜单ID;菜单ID' ,
PRIMARY KEY (ID)
) COMMENT = '角色权限菜单表';

自定义用户实现

测试