台服dnf吧 关注:116,832贴子:1,840,650

【教程】自建DNF外网服务器的数据库密码修改

只看楼主收藏回复

修改数据库的账户密码有以下好处:
1.防止恶意人士通过外网对数据库攻击,导致dnf的游戏数据损坏。
2.通过在数据库新增登录专用账户,防止登录客户端泄露数据库的管理员账户信息,保证只有服务器管理员才可以使用GM工具。


IP属地:湖北1楼2025-01-13 14:35回复
    前排占位,感谢分享


    IP属地:河南来自iPhone客户端2楼2025-01-13 14:37
    回复
      一、准备工作
      1.DNF环境搭建完成的服务器(可以登录游玩)
      2.连接并登录进服务器里的数据库


      IP属地:湖北3楼2025-01-13 14:41
      回复
        二、修改数据库的管理员密码,防止恶意人士通过外网破坏自己的服务器数据库
        提示:DNF一键搭建脚本默认配置的数据库账户密码非常简单,大家都知道的账户密码不安全,很容易被别人利用攻击,所以需要修改为一个只有自己知道的复杂密码。


        IP属地:湖北4楼2025-01-13 15:02
        回复

          打开自己的数据库,使用鼠标点击,按照图片里的顺序1、2、3,新建查询


          IP属地:湖北5楼2025-01-13 15:05
          收起回复
            完成上面一步后:会打开一个查询编辑器。
            1.在【图标1】处输入 select user,host from mysql.user;
            2.鼠标单击【图标1】上方不远处的《运行》
            3.查看【图标2】处的显示结果,确保存在有上面两条数据(game %)和(game 127.0.0.1)


            IP属地:湖北来自Android客户端6楼2025-01-13 15:38
            回复
              上一步操作是确认数据库已有账户不存在问题,两个数据库管理员账户中(game %)是gm工具登录使用的数据库账户,坏人也是利用这个账户来破坏数据库的,后面我们要修改它的密码。(game 127.0.0.1)是DNF服务端使用的数据库账户,不要修改它,也不需要修改,它不会被恶意利用,修改后会导致DNF服务端无法运行。


              IP属地:湖北来自Android客户端7楼2025-01-13 15:56
              回复
                1.在[图标1]处的查询编辑器里输入代码:
                set password for game@'%' = password('abc');
                flush privileges;
                上述代码里面的abc就是你想要为账户(game %)修改的密码,注意密码的复杂度要包含字母、数据、符号,简单的密码非常容易被脚本攻击,abc只是我演示所用。
                比如你想修改密码为Xbw23|&23,则代码要修改成:
                set password for game@'%' = password('Xbw23|&23');
                flush privileges;
                2.在[图标2]处确认代码的运行结果,显示内容的格式和图片里一样,即是运行成功。


                IP属地:湖北来自Android客户端8楼2025-01-13 16:11
                回复
                  完成以上内容后,数据库管理员的密码就被修改成了只有自己一个人知道的密码,我们成功的保护了自己的DNF数据安全


                  IP属地:湖北来自Android客户端9楼2025-01-13 16:16
                  回复
                    多谢大佬指点


                    IP属地:广东来自Android客户端10楼2025-01-13 16:20
                    回复
                      三、创建一个数据库登录专用账户
                      一般搭建DNF服务器后,会邀请朋友来一起游玩,就需要把DNF登录客户端文件发给朋友,但是客户端里存有数据库的管理员账户密码,因为客户端的注册和登录功能需要连接数据库。为了防止朋友使用管理员账户配合gm工具给自己发道具,这时就需要一个只有登录和注册权限的数据库专用账户,这个专用账户只能用于DNF的登录和注册,哪怕泄漏了也不影响什么。


                      IP属地:湖北来自Android客户端11楼2025-01-13 16:27
                      回复
                        1.在【图标1】处的查询编辑器中输入代码:
                        create user dnf@'%' identified by '1';
                        GRANT SELECT, INSERT ON `d_taiwan`.`accounts` TO dnf@'%';
                        flush privileges;
                        运行后会创建一个(dnf %)的数据库账户,这个账户只有登录和注册"DNF账户"的功能,它就是我们想要的"登录专用账户"。
                        2.检查【图标2】处的内容显示格式和图片里一样,确认代码正确执行。


                        IP属地:湖北来自Android客户端12楼2025-01-13 16:44
                        回复
                          修改DNF登录端目录的game.ini文件,将里面的数据库管理员账号修改为我们创建的登录专用账户


                          IP属地:湖北来自Android客户端13楼2025-01-13 16:48
                          回复
                            内容如图片所示,用上面创建的登录专用账户填写DBUser和DBPass,账户是dnf,密码是1。后面我会讲解登录专用账户创建时的代码。


                            IP属地:湖北来自Android客户端14楼2025-01-13 16:54
                            回复
                              代码讲解:
                              ①:create user dnf@'%' identified by '1';
                              创建一个账户(dnf %):账户名为dnf,密码为1。如果你想创建账户名为myself,密码为abc的账户(myself %),则代码为:
                              create user myself@'%' identified by 'abc';
                              ②:GRANT SELECT, INSERT ON `d_taiwan`.`accounts` TO dnf@'%';
                              赋予账户(dnf %)登录和注册的权限,SELECT代表登录权限、INSERT代表注册权限。如果你只想给账户(myself %)登录权限,而不给注册权限,则代码为:
                              GRANT SELECT ON `d_taiwan`.`accounts` TO myself@'%';
                              ③:flush privileges; 更新数据库的权限信息,让新建的数据库账号立即生效。这段代码是必要不可修改的。


                              IP属地:湖北来自Android客户端15楼2025-01-13 17:04
                              收起回复