perm.sql 8.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166
  1. SET NAMES utf8mb4;
  2. SET FOREIGN_KEY_CHECKS = 0;
  3. -- ----------------------------
  4. -- Table structure for sys_product
  5. -- 产品表:所有权限、角色、用户归属的顶层作用域
  6. -- ----------------------------
  7. CREATE TABLE IF NOT EXISTS `sys_product` (
  8. `id` bigint NOT NULL AUTO_INCREMENT COMMENT 'ID',
  9. `code` varchar(64) NOT NULL DEFAULT '' COMMENT '产品编码(唯一标识)',
  10. `name` varchar(64) NOT NULL DEFAULT '' COMMENT '产品名称',
  11. `appKey` varchar(64) NOT NULL DEFAULT '' COMMENT '产品接入密钥',
  12. `appSecret` varchar(128) NOT NULL DEFAULT '' COMMENT '产品接入签名密钥',
  13. `remark` varchar(255) DEFAULT '' COMMENT '备注',
  14. `status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '状态 1启用 2禁用',
  15. `createTime` int NOT NULL DEFAULT '0' COMMENT '创建时间',
  16. `updateTime` int NOT NULL DEFAULT '0' COMMENT '修改时间',
  17. PRIMARY KEY (`id`),
  18. UNIQUE KEY `uk_code` (`code`) USING BTREE,
  19. UNIQUE KEY `uk_app_key` (`appKey`) USING BTREE
  20. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
  21. -- ----------------------------
  22. -- Table structure for sys_dept
  23. -- 部门表:树形组织架构,实现跨部门管理隔离
  24. -- ----------------------------
  25. CREATE TABLE IF NOT EXISTS `sys_dept` (
  26. `id` bigint NOT NULL AUTO_INCREMENT COMMENT 'ID',
  27. `parentId` bigint NOT NULL DEFAULT '0' COMMENT '父部门ID,0表示顶级部门',
  28. `name` varchar(64) NOT NULL DEFAULT '' COMMENT '部门名称',
  29. `path` varchar(512) NOT NULL DEFAULT '' COMMENT '层级路径,如 /1/3/7/ 用于快速判断祖先关系',
  30. `sort` int NOT NULL DEFAULT '0' COMMENT '排序值',
  31. `deptType` varchar(16) NOT NULL DEFAULT 'NORMAL' COMMENT '部门类型 NORMAL普通 DEV研发',
  32. `remark` varchar(255) DEFAULT '' COMMENT '备注',
  33. `status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '状态 1启用 2禁用',
  34. `createTime` int NOT NULL DEFAULT '0' COMMENT '创建时间',
  35. `updateTime` int NOT NULL DEFAULT '0' COMMENT '修改时间',
  36. PRIMARY KEY (`id`),
  37. KEY `idx_parent` (`parentId`) USING BTREE
  38. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
  39. -- ----------------------------
  40. -- Table structure for sys_perm
  41. -- 权限表
  42. -- ----------------------------
  43. CREATE TABLE IF NOT EXISTS `sys_perm` (
  44. `id` bigint NOT NULL AUTO_INCREMENT COMMENT 'ID',
  45. `productCode` varchar(64) NOT NULL DEFAULT '' COMMENT '所属产品编码',
  46. `name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT '' COMMENT '权限名',
  47. `code` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT '' COMMENT '权限code',
  48. `remark` varchar(255) DEFAULT '' COMMENT '备注',
  49. `status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '状态 1启用 2禁用',
  50. `createTime` int NOT NULL DEFAULT '0' COMMENT '创建时间',
  51. `updateTime` int NOT NULL DEFAULT '0' COMMENT '修改时间',
  52. PRIMARY KEY (`id`),
  53. UNIQUE KEY `uk_product_code` (`productCode`,`code`) USING BTREE
  54. ) ENGINE=InnoDB AUTO_INCREMENT=14955 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
  55. -- ----------------------------
  56. -- Table structure for sys_role
  57. -- 角色表
  58. -- ----------------------------
  59. CREATE TABLE IF NOT EXISTS `sys_role` (
  60. `id` bigint NOT NULL AUTO_INCREMENT COMMENT 'ID',
  61. `productCode` varchar(64) NOT NULL DEFAULT '' COMMENT '所属产品编码',
  62. `name` varchar(64) NOT NULL DEFAULT '' COMMENT '角色名',
  63. `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT '' COMMENT '备注',
  64. `status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '状态 1启用 2禁用',
  65. `permsLevel` int NOT NULL DEFAULT '0' COMMENT '权限等级,值越大权限越小,用于上下级管控',
  66. `createTime` int NOT NULL DEFAULT '0' COMMENT '创建时间',
  67. `updateTime` int NOT NULL DEFAULT '0' COMMENT '修改时间',
  68. PRIMARY KEY (`id`),
  69. UNIQUE KEY `uk_product_name` (`productCode`,`name`) USING BTREE
  70. ) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
  71. -- ----------------------------
  72. -- Table structure for sys_role_perm
  73. -- 角色-权限关联表
  74. -- ----------------------------
  75. CREATE TABLE IF NOT EXISTS `sys_role_perm` (
  76. `id` bigint NOT NULL AUTO_INCREMENT COMMENT 'ID',
  77. `roleId` bigint NOT NULL COMMENT '角色ID',
  78. `permId` bigint NOT NULL COMMENT '权限ID',
  79. `createTime` int NOT NULL DEFAULT '0' COMMENT '创建时间',
  80. `updateTime` int NOT NULL DEFAULT '0' COMMENT '修改时间',
  81. PRIMARY KEY (`id`),
  82. UNIQUE KEY `uk_role_perm` (`roleId`,`permId`) USING BTREE
  83. ) ENGINE=InnoDB AUTO_INCREMENT=3346 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
  84. -- ----------------------------
  85. -- Table structure for sys_user
  86. -- 用户表
  87. -- ----------------------------
  88. CREATE TABLE IF NOT EXISTS `sys_user` (
  89. `id` bigint NOT NULL AUTO_INCREMENT,
  90. `username` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT '' COMMENT '登录名',
  91. `password` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT '' COMMENT '登录密码',
  92. `nickname` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT '' COMMENT '昵称',
  93. `avatar` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci COMMENT '头像',
  94. `email` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT '' COMMENT '邮箱',
  95. `phone` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT '' COMMENT '手机号',
  96. `remark` varchar(255) DEFAULT '' COMMENT '备注',
  97. `deptId` bigint NOT NULL DEFAULT '0' COMMENT '所属部门ID',
  98. `isSuperAdmin` tinyint(1) NOT NULL DEFAULT '2' COMMENT '是否为超级管理员 1是 2否',
  99. `mustChangePassword` tinyint(1) NOT NULL DEFAULT '2' COMMENT '是否需要强制修改密码 1是 2否',
  100. `status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '状态 1正常 2冻结',
  101. `createTime` int NOT NULL DEFAULT '0' COMMENT '创建时间',
  102. `updateTime` int NOT NULL DEFAULT '0' COMMENT '修改时间',
  103. PRIMARY KEY (`id`) USING BTREE,
  104. UNIQUE KEY `uk_username` (`username`) USING BTREE,
  105. KEY `idx_dept` (`deptId`) USING BTREE
  106. ) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
  107. -- ----------------------------
  108. -- Table structure for sys_product_member
  109. -- 产品成员表:将用户与产品关联,并标记成员类型
  110. -- memberType 决定自动权限行为:
  111. -- DEVELOPER = 开发者,自动拥有该产品所有权限
  112. -- ADMIN = 管理员,自动拥有该产品所有权限
  113. -- MEMBER = 普通成员,权限由角色和用户权限表决定
  114. -- 管理层级顺序:超级管理员 > DEVELOPER > ADMIN > MEMBER
  115. -- ----------------------------
  116. CREATE TABLE IF NOT EXISTS `sys_product_member` (
  117. `id` bigint NOT NULL AUTO_INCREMENT COMMENT 'ID',
  118. `productCode` varchar(64) NOT NULL DEFAULT '' COMMENT '产品编码',
  119. `userId` bigint NOT NULL COMMENT '用户ID',
  120. `memberType` enum('DEVELOPER','ADMIN','MEMBER') NOT NULL DEFAULT 'MEMBER' COMMENT '成员类型',
  121. `status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '状态 1启用 2禁用',
  122. `createTime` int NOT NULL DEFAULT '0' COMMENT '创建时间',
  123. `updateTime` int NOT NULL DEFAULT '0' COMMENT '修改时间',
  124. PRIMARY KEY (`id`),
  125. UNIQUE KEY `uk_product_user` (`productCode`,`userId`) USING BTREE,
  126. KEY `idx_user` (`userId`) USING BTREE
  127. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
  128. -- ----------------------------
  129. -- Table structure for sys_user_perm
  130. -- 用户-权限关联表
  131. -- ----------------------------
  132. CREATE TABLE IF NOT EXISTS `sys_user_perm` (
  133. `id` bigint NOT NULL AUTO_INCREMENT COMMENT 'ID',
  134. `userId` bigint NOT NULL COMMENT '用户ID',
  135. `permId` bigint NOT NULL COMMENT '权限ID',
  136. `effect` enum('ALLOW','DENY') NOT NULL DEFAULT 'ALLOW' COMMENT '权限控制策略 ALLOW允许 DENY拒绝',
  137. `createTime` int NOT NULL DEFAULT '0' COMMENT '创建时间',
  138. `updateTime` int NOT NULL DEFAULT '0' COMMENT '修改时间',
  139. PRIMARY KEY (`id`) USING BTREE,
  140. UNIQUE KEY `uk_user_perm` (`userId`,`permId`) USING BTREE,
  141. KEY `idx_user_effect` (`userId`,`effect`)
  142. ) ENGINE=InnoDB AUTO_INCREMENT=58 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
  143. -- ----------------------------
  144. -- Table structure for sys_user_role
  145. -- 用户-角色关联表
  146. -- ----------------------------
  147. CREATE TABLE IF NOT EXISTS `sys_user_role` (
  148. `id` bigint NOT NULL AUTO_INCREMENT COMMENT 'ID',
  149. `userId` bigint NOT NULL COMMENT '用户ID',
  150. `roleId` bigint NOT NULL COMMENT '角色ID',
  151. `createTime` int NOT NULL DEFAULT '0' COMMENT '创建时间',
  152. `updateTime` int NOT NULL DEFAULT '0' COMMENT '修改时间',
  153. PRIMARY KEY (`id`),
  154. UNIQUE KEY `uk_user_role` (`userId`,`roleId`) USING BTREE
  155. ) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
  156. SET FOREIGN_KEY_CHECKS = 1;