68 lines
2.2 KiB
SQL
68 lines
2.2 KiB
SQL
-- V4: RBAC foundation + admin upgrade logs (Spring Boot 3 optimization)
|
|
|
|
CREATE TABLE IF NOT EXISTS rbac_role
|
|
(
|
|
id INTEGER NOT NULL PRIMARY KEY AUTO_INCREMENT,
|
|
code VARCHAR(50) NOT NULL,
|
|
name VARCHAR(100) NOT NULL,
|
|
description VARCHAR(255),
|
|
enabled INTEGER NOT NULL DEFAULT 1,
|
|
create_time DATETIME,
|
|
update_time DATETIME
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS rbac_user_role
|
|
(
|
|
id INTEGER NOT NULL PRIMARY KEY AUTO_INCREMENT,
|
|
user_id INTEGER NOT NULL,
|
|
role_id INTEGER NOT NULL,
|
|
create_time DATETIME
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS upgrade_log
|
|
(
|
|
id INTEGER NOT NULL PRIMARY KEY AUTO_INCREMENT,
|
|
version VARCHAR(50) NOT NULL,
|
|
title VARCHAR(200) NOT NULL,
|
|
content TEXT,
|
|
type VARCHAR(50),
|
|
created_by INTEGER,
|
|
create_time DATETIME
|
|
);
|
|
|
|
INSERT INTO rbac_role (code, name, description, enabled, create_time, update_time)
|
|
SELECT 'ADMIN', '管理员', '后台管理与运维权限', 1, NOW(), NOW()
|
|
WHERE NOT EXISTS (SELECT 1 FROM rbac_role WHERE code = 'ADMIN');
|
|
|
|
INSERT INTO rbac_role (code, name, description, enabled, create_time, update_time)
|
|
SELECT 'USER', '普通用户', '论坛基础访问权限', 1, NOW(), NOW()
|
|
WHERE NOT EXISTS (SELECT 1 FROM rbac_role WHERE code = 'USER');
|
|
|
|
INSERT INTO rbac_user_role (user_id, role_id, create_time)
|
|
SELECT u.id, r.id, NOW()
|
|
FROM user u
|
|
JOIN rbac_role r ON r.code = 'USER'
|
|
WHERE NOT EXISTS (
|
|
SELECT 1 FROM rbac_user_role ur WHERE ur.user_id = u.id AND ur.role_id = r.id
|
|
);
|
|
|
|
INSERT INTO rbac_user_role (user_id, role_id, create_time)
|
|
SELECT u.id, r.id, NOW()
|
|
FROM user u
|
|
JOIN rbac_role r ON r.code = 'ADMIN'
|
|
WHERE u.level >= 1
|
|
AND NOT EXISTS (
|
|
SELECT 1 FROM rbac_user_role ur WHERE ur.user_id = u.id AND ur.role_id = r.id
|
|
);
|
|
|
|
INSERT INTO upgrade_log (version, title, content, type, created_by, create_time)
|
|
SELECT 'v3.5.13',
|
|
'后台管理与RBAC架构初始化',
|
|
'新增角色与用户角色映射;新增后台管理与运维面板;新增升级日志管理入口。',
|
|
'feature',
|
|
1,
|
|
NOW()
|
|
WHERE NOT EXISTS (
|
|
SELECT 1 FROM upgrade_log WHERE version = 'v3.5.13' AND title = '后台管理与RBAC架构初始化'
|
|
);
|