admin 表是 DedeCMS 的核心数据表之一,它存储了系统中所有管理员账户的信息,理解这个表的结构和字段对于管理后台、排查问题、进行二次开发都非常重要。

(图片来源网络,侵删)
表结构
admin 表的结构通常如下所示(不同版本的 DedeCMS 可能略有差异,但核心字段基本一致):
| 字段名 | 数据类型 | 说明 | 示例值 |
|---|---|---|---|
| uid | mediumint(8) unsigned | 管理员ID,主键,自增。 | 1, 2, 3 |
| usertype | char(20) | 管理员类型,如 superadmin (超级管理员), admin (普通管理员)。 |
superadmin |
| userid | char(30) | 管理员登录用户名,唯一。 | admin |
| pwd | char(50) | 管理员登录密码,经过 MD5 加密。 | 21232f297a57a5a743894a0e4a801fc3 (这是 admin 的MD5值) |
| uname | varchar(50) | 管理员的真实姓名或昵称。 | 站长 |
| tname | varchar(50) | 管理员在后台显示的名称。 | 超级管理员 |
| varchar(50) | 管理员的电子邮箱。 | admin@example.com |
|
typeid |
smallint(5) unsigned | 管理权限组ID,关联 arctype 表或专门的权限表,用于控制管理员的栏目管理权限。 |
0 (表示所有栏目) 或 1, 2, 3... |
logintime |
int(10) unsigned | 最近登录时间,Unix 时间戳格式。 | 1678886400 |
loginip |
char(15) | 最近登录IP地址。 | 168.1.100 |
check |
smallint(5) unsigned | 管理员状态,如 1 (正常), 0 (禁用)。 |
1 |
dede_addonarticle |
varchar(20) | (旧版本特有)与附加表相关的权限设置,新版本已不常用。 | - |
spaceid |
smallint(5) unsigned | 空间ID,用于多站点或会员空间管理。 | 0 |
money |
decimal(10,2) | 会员余额,如果管理员同时是会员,此字段有效。 | 00 |
rank |
smallint(5) unsigned | 会员等级,如果管理员同时是会员,此字段有效。 | 0 |
sex |
tinyint(1) | 性别,0 (保密), 1 (男), 2 (女)。 |
0 |
card |
varchar(20) | 身份证号。 | - |
mtype |
char(10) | 会员类型。 | - |
scores |
int(10) unsigned | 会员积分。 | 0 |
moneyrank |
smallint(5) unsigned | 资金等级。 | 0 |
experience |
int(10) unsigned | 会员经验值。 | 0 |
uprank |
int(10) unsigned | 提升等级所需经验值。 | 0 |
logincount |
int(10) unsigned | 登录次数。 | 25 |
safequestion |
smallint(5) unsigned | 密码安全问题ID。 | 0 |
safeanswer |
char(30) | 密码安全问题答案。 | - |
jointime |
int(10) unsigned | 注册时间,Unix 时间戳格式。 | 1609459200 |
joinip |
char(15) | 注册时的IP地址。 | 0.0.1 |
核心字段详解
-
uid- 作用:每个管理员账户的唯一标识符,是主键。
- 用途:在其他表中(如操作日志表
dede_adminlog)通过uid来关联是哪个管理员执行的操作。
-
userid和pwd- 作用:登录系统的凭证。
userid:登录用户名,是唯一的,你不能创建两个同名用户。pwd:登录密码。重要:这个字段存储的是密码的 MD5 哈希值,而不是明文,这是为了安全,如果你忘记密码,不能直接在这个表中修改pwd为明文,需要通过 DedeCMS 后台的“修改密码”功能来重置,它会自动为你生成新的 MD5 值。
-
usertype
(图片来源网络,侵删)- 作用:定义管理员的级别。
superadmin:超级管理员,拥有网站的最高权限,可以管理所有内容、所有模块、所有其他管理员。admin:普通管理员,其权限由超级管理员在后台“系统” -> “账号管理” -> “管理权限组”中分配,可以只管理特定的栏目或内容模型。
-
typeid- 作用:权限控制的核心字段。
- 值:它存储的是栏目(频道)的ID。
- 逻辑:
typeid为0,表示该管理员拥有所有栏目的管理权限。typeid为一个或多个栏目ID(如1,3,5),则表示该管理员仅能管理这些ID对应的栏目及其子栏目,这是 DedeCMS 实现多管理员分栏管理的关键。
-
logintime和loginip- 作用:用于记录和管理员的活动情况,方便追踪和审计。
logintime:记录管理员最后一次成功登录的时间(Unix时间戳),你可以在后台查看。loginip:记录管理员最后一次成功登录的IP地址,这有助于发现异常登录,比如管理员在A地登录,但日志显示在B地有登录记录,可能存在安全风险。
-
check- 作用:控制管理员账户的启用和禁用。
1:账户正常,可以登录。0:账户被禁用,无法登录,当你暂时不想让某个管理员登录后台时,可以将其状态设为0。
常见操作与注意事项
如何重置管理员密码?
强烈建议使用 DedeCMS 后台功能,而不是直接操作数据库。

(图片来源网络,侵删)
-
使用后台“修改密码”功能(推荐)
- 以管理员身份登录 DedeCMS 后台。
- 进入“系统” -> “账号管理” -> “修改我的资料”或“修改密码”。
- 输入旧密码和新密码,提交即可,系统会自动完成 MD5 加密并更新数据库。
-
直接修改数据库(紧急情况,如忘记密码)
- 如果你无法登录后台,可以直接操作数据库。
- 使用 phpMyAdmin 等工具连接到你的数据库。
- 找到
dede_admin表(前缀可能是你自定义的,如dede_)。 - 找到
userid为admin的那条记录。 - 将
pwd字段的值修改为你想要的新密码的 MD5 值。 - 如何获取 MD5 值? 你可以使用在线 MD5 加密工具,或者在你电脑的命令行中输入
echo -n "你的新密码" | md5sum(Linux/macOS) 或certutil -hashfile 你的密码.txt MD5(Windows)。 - 示例:如果你想将密码重置为
123456,你需要先计算出123456的 MD5 值,然后更新pwd字段为这个值。
如何添加一个新管理员?
-
使用后台“账号管理”功能(推荐)
- 以超级管理员身份登录后台。
- 进入“系统” -> “账号管理” -> “增加管理员”。
- 填写用户名、密码、真实姓名等信息,并为其分配权限组,然后保存。
-
直接操作数据库
- 在
dede_admin表中手动插入一条新记录。 INSERT INTO dede_admin (userid, pwd, uname, usertype, typeid, check) VALUES ('newadmin', 'MD5加密后的密码', '新管理员', 'admin', '0', '1');- 注意:
typeid设为0表示所有权限,设为具体栏目ID则限制权限。
- 在
如何限制某个管理员的权限?
- 这个操作必须在后台完成,直接修改数据库的
typeid字段比较麻烦且容易出错。 - 步骤:
- 以超级管理员身份登录后台。
- 进入“系统” -> “账号管理” -> “管理权限组”。
- 选择要修改的管理员所在的权限组,或者创建一个新的权限组。
- 在权限组设置中,勾选该管理员可以管理的栏目,取消勾选则表示无权管理。
- 保存设置,系统会自动更新该管理员对应的
typeid字段。
admin 表是 DedeCMS 的“心脏”,它定义了谁可以访问后台以及他们拥有什么样的权力,理解其结构,特别是 userid、pwd、usertype 和 typeid 这几个核心字段,对于日常管理和系统维护至关重要,在进行任何数据库操作前,请务必备份数据库,以防意外发生。
