You need to enable JavaScript to run this app. 如何将指定realm设置为仅GM(权限等级>0的账户)可访问?
优惠活动
大模型
产品
解决方案
定价
更多

如何将指定realm设置为仅GM(权限等级>0的账户)可访问?

配置指定Realm仅对GM开放的操作步骤

本配置的核心逻辑是:将目标Realm的访问校验规则调整为,仅当账号在acore_auth.account_access表中对应记录的gmlevel值大于0时,才拥有该Realm的可见、可进入权限,普通玩家(gmlevel=0)一律无法访问。

方案1:通过服务配置实现,无需修改核心代码

  • 第一步:确认目标Realm的数据库ID
    连接acore_auth数据库,执行查询语句拿到目标专属Realm的唯一ID,记为<target_realm_id>:
    SELECT id, name FROM realmlist;
  • 第二步:清理目标Realm下的无效普通玩家授权
    执行SQL删除account_access表中所有针对目标Realm、权限等级为0的普通玩家授权条目:
    DELETE FROM account_access WHERE RealmID = <target_realm_id> AND gmlevel = 0;
  • 第三步:调整auth服务全局校验规则
    打开auth服务的配置文件authserver.conf,找到配置项DisallowRealmWithoutAccess,将其默认值从0修改为1。

    该配置开启后,系统将调整默认访问逻辑:所有账号只有在account_access表中存在对应RealmID的有效授权条目时,才能看到并进入该Realm;无有效授权的账号将完全看不到该Realm。

  • 第四步:为GM账号添加目标Realm的授权
    给所有需要访问该专属Realm的GM账号,在account_access表中添加对应授权记录,确保记录的gmlevel值大于0。例如给账号ID为123、权限等级为3的GM授权访问ID为2的目标Realm,执行语句:
    INSERT INTO account_access (id, RealmID, gmlevel) VALUES (123, 2, 3);
    拥有全局GM权限(account_access表中RealmID=-1、gmlevel>0)的账号无需额外配置,可自动通过所有Realm的权限校验。
  • 第五步:重启authserver服务使配置生效

方案1注意事项

  • DisallowRealmWithoutAccess为全局生效配置,开启后所有面向普通玩家的公开Realm也会应用强制授权校验,需要提前为所有普通玩家批量补充公开Realm的gmlevel=0授权条目,否则普通玩家将无法看到公开Realm。
  • 校验生效后,可使用普通玩家账号登录验证:专属Realm将不会出现在服务器列表中;使用GM账号登录可正常看到并进入专属Realm,即代表配置成功。

方案2:仅对目标Realm生效权限限制,不影响全局公开服务器

如果不想调整全局校验规则、不想增加公开Realm的批量授权运维成本,可以通过修改核心代码实现单Realm的专属权限控制:

  • 定位auth服务核心代码中查询客户端可用Realm列表的逻辑(一般在src/server/authserver/RealmManager.cpp文件中)
  • 在Realm列表返回逻辑中,为目标<target_realm_id>追加权限判断条件:只有当当前登录账号满足account_access表中存在对应记录(全局权限RealmID=-1或目标Realm专属授权)、且gmlevel>0时,才将该专属Realm加入返回给客户端的服务器列表
  • 重新编译authserver核心程序,重启服务即可生效。该方案的权限限制仅针对设置的目标专属Realm,其他公开Realm将完全保留默认的访问逻辑,不受影响。

内容的提问来源于stack exchange,提问作者Francesco Borzi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.27 22:36:04