Files
MYXY_Web/sql/init_admin_users.sql

96 lines
4.7 KiB
SQL
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
-- =====================================================
-- 梦幻西游一站式运营管理系统 - 后台用户表初始化脚本
-- 适用于 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. 部署到生产环境时,请修改默认密码
-- =====================================================