96 lines
4.7 KiB
SQL
96 lines
4.7 KiB
SQL
-- =====================================================
|
||
-- 梦幻西游一站式运营管理系统 - 后台用户表初始化脚本
|
||
-- 适用于 MYSQL 8.4
|
||
-- 创建日期: 2025-12-12
|
||
-- 描述: 创建后台管理员用户相关数据表
|
||
-- =====================================================
|
||
|
||
-- 选择数据库
|
||
USE mhxy_web;
|
||
|
||
-- 创建后台管理员用户表
|
||
CREATE TABLE IF NOT EXISTS admin_users (
|
||
id INT PRIMARY KEY AUTO_INCREMENT COMMENT '管理员ID',
|
||
username VARCHAR(50) NOT NULL UNIQUE COMMENT '用户名',
|
||
password VARCHAR(255) NOT NULL COMMENT '密码(加密存储)',
|
||
real_name VARCHAR(100) COMMENT '真实姓名',
|
||
email VARCHAR(100) COMMENT '邮箱地址',
|
||
phone VARCHAR(20) COMMENT '联系电话',
|
||
status TINYINT DEFAULT 1 COMMENT '账号状态: 0-禁用, 1-启用',
|
||
is_super_admin TINYINT DEFAULT 0 COMMENT '是否超级管理员: 0-否, 1-是',
|
||
last_login_time DATETIME COMMENT '最后登录时间',
|
||
last_login_ip VARCHAR(45) COMMENT '最后登录IP',
|
||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
|
||
-- 创建索引
|
||
INDEX idx_username (username),
|
||
INDEX idx_status (status),
|
||
INDEX idx_created_at (created_at)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='后台管理员用户表';
|
||
|
||
-- 创建管理员操作日志表
|
||
CREATE TABLE IF NOT EXISTS admin_operation_logs (
|
||
id INT PRIMARY KEY AUTO_INCREMENT COMMENT '日志ID',
|
||
admin_user_id INT NOT NULL COMMENT '管理员ID',
|
||
operation_type VARCHAR(50) NOT NULL COMMENT '操作类型',
|
||
operation_desc TEXT COMMENT '操作描述',
|
||
request_method VARCHAR(10) COMMENT '请求方法',
|
||
request_url VARCHAR(255) COMMENT '请求URL',
|
||
request_params TEXT COMMENT '请求参数',
|
||
response_status INT COMMENT '响应状态码',
|
||
ip_address VARCHAR(45) COMMENT 'IP地址',
|
||
user_agent TEXT COMMENT '用户代理',
|
||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
|
||
-- 创建外键约束
|
||
FOREIGN KEY (admin_user_id) REFERENCES admin_users(id) ON DELETE CASCADE,
|
||
|
||
-- 创建索引
|
||
INDEX idx_admin_user_id (admin_user_id),
|
||
INDEX idx_operation_type (operation_type),
|
||
INDEX idx_created_at (created_at)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='管理员操作日志表';
|
||
|
||
-- 创建系统配置表
|
||
CREATE TABLE IF NOT EXISTS system_config (
|
||
id INT PRIMARY KEY AUTO_INCREMENT COMMENT '配置ID',
|
||
config_key VARCHAR(100) NOT NULL UNIQUE COMMENT '配置键',
|
||
config_value TEXT COMMENT '配置值',
|
||
config_desc VARCHAR(255) COMMENT '配置描述',
|
||
config_group VARCHAR(50) DEFAULT 'default' COMMENT '配置分组',
|
||
is_editable TINYINT DEFAULT 1 COMMENT '是否可编辑: 0-否, 1-是',
|
||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
|
||
-- 创建索引
|
||
INDEX idx_config_key (config_key),
|
||
INDEX idx_config_group (config_group)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='系统配置表';
|
||
|
||
-- 插入初始超级管理员账号(密码为: admin123,实际部署时需要加密)
|
||
INSERT INTO admin_users (username, password, real_name, email, status, is_super_admin) VALUES
|
||
('admin', '$2b$10$rOzK5V4yR7YqE6XoV4Wz9ODz8rN2L5A3C7B1F9H6I4J2K3L5M6N7O8P', '系统管理员', 'admin@mhxy.com', 1, 1);
|
||
|
||
-- 说明: 上面插入的密码是 'admin123' 的BCrypt加密结果
|
||
-- 生产环境中应该使用更复杂的密码
|
||
-- 加密密码生成示例(实际使用时需要在应用中处理):
|
||
-- const bcrypt = require('bcrypt');
|
||
-- const hashedPassword = await bcrypt.hash('admin123', 10);
|
||
|
||
-- 插入系统默认配置
|
||
INSERT INTO system_config (config_key, config_value, config_desc, config_group) VALUES
|
||
('site_name', '梦幻西游一站式运营管理系统', '网站名称', 'basic'),
|
||
('site_description', '梦幻西游游戏运营管理后台系统', '网站描述', 'basic'),
|
||
('admin_session_timeout', '7200', '管理员会话超时时间(秒)', 'security'),
|
||
('max_login_attempts', '5', '最大登录尝试次数', 'security'),
|
||
('enable_captcha', '1', '是否启用验证码', 'security');
|
||
|
||
-- =====================================================
|
||
-- 使用说明:
|
||
-- 1. 在MySQL 8.4中执行此脚本
|
||
-- 2. 确保数据库存在: CREATE DATABASE IF NOT EXISTS mhxy_web;
|
||
-- 3. 执行脚本: source /path/to/init_admin_users.sql;
|
||
-- 4. 初始管理员账号: admin / admin123
|
||
-- 5. 部署到生产环境时,请修改默认密码
|
||
-- ===================================================== |