1.2 account_access - 账号权限表

账号权限表存储了账号的GM权限级别信息,用于控制玩家在游戏中的管理权限。

表结构

字段名 类型 属性 描述
id int(10) unsigned 主键 账号ID,对应account表中的id字段
gmlevel tinyint(3) unsigned 不为空 GM等级 (0=玩家, 1=助手, 2=GM, 3=管理员)
RealmID int(11) 不为空,默认-1 服务器ID (-1=所有服务器,或特定服务器ID)
comment varchar(255) 可为空 备注信息

字段详解

id

账号的唯一标识符,对应account表中的id字段。这个字段是表的主键,用于标识哪个账号拥有GM权限。

示例值: 1, 42, 1337

gmlevel

GM等级,决定了账号在游戏中拥有的权限级别。不同的GM等级可以执行不同的命令和操作。

常见的GM等级设置:

示例值: 0, 1, 2, 3

注意: 具体的权限级别可以在配置文件中自定义,上述只是常见的设置。

RealmID

指定GM权限适用的服务器ID。如果设置为-1,则表示该权限适用于所有服务器;如果设置为特定的服务器ID,则只在该服务器上有效。

示例值: -1(所有服务器), 1(ID为1的服务器)

注意: 服务器ID对应realmlist表中的id字段。

comment

备注信息,用于记录为什么给予该账号GM权限,或者该账号的用途。这个字段纯粹是为了管理方便,不影响游戏功能。

示例值: "主管理员", "测试账号", "活动GM"

使用示例

为账号授予GM权限

以下SQL语句将为ID为42的账号授予GM等级2的权限,适用于所有服务器:

INSERT INTO account_access (id, gmlevel, RealmID, comment)
VALUES (42, 2, -1, '活动GM账号');

修改账号的GM权限

以下SQL语句将ID为42的账号的GM等级从2修改为3:

UPDATE account_access
SET gmlevel = 3
WHERE id = 42;

移除账号的GM权限

以下SQL语句将移除ID为42的账号的GM权限:

DELETE FROM account_access
WHERE id = 42;

相关表

常见问题

如何查看某个账号的GM权限?

使用以下SQL语句查询:

SELECT a.username, aa.gmlevel, aa.RealmID, r.name AS realm_name
FROM account_access aa
JOIN account a ON aa.id = a.id
LEFT JOIN realmlist r ON aa.RealmID = r.id
WHERE aa.id = 42;

一个账号可以在不同服务器有不同的GM等级吗?

是的,可以为同一个账号在不同的服务器设置不同的GM等级。例如:

-- 在服务器1上设置为GM等级2
INSERT INTO account_access (id, gmlevel, RealmID, comment)
VALUES (42, 2, 1, 'GM on Realm 1');

-- 在服务器2上设置为GM等级1
INSERT INTO account_access (id, gmlevel, RealmID, comment)
VALUES (42, 1, 2, 'Helper on Realm 2');

GM权限设置后需要重启服务器吗?

不需要。GM权限设置后立即生效,账号下次登录时就会拥有相应的权限。如果账号当前已登录,可能需要重新登录才能使新的权限设置生效。