`
gaojingsong
  • 浏览: 1183062 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

Mycat1.6之firewall配置

阅读更多

1、新建用户并授权

CREATE USER 'test'@'%' IDENTIFIED BY 'root';

 

GRANT SELECT, INSERT, UPDATE, DELETE, SHOW DATABASES ON *.* TO 'test'@'%';

 

GRANT SELECT, INSERT, UPDATE, REFERENCES, CREATE VIEW, SHOW VIEW, LOCK TABLES ON `db3`.* TO 'test'@'%';

 

GRANT SELECT, INSERT, UPDATE, REFERENCES, CREATE VIEW, SHOW VIEW, LOCK TABLES ON `db2`.* TO 'test'@'%';

 

GRANT SELECT, INSERT, UPDATE, REFERENCES, CREATE VIEW, SHOW VIEW, LOCK TABLES ON `db1`.* TO 'test'@'%';

 

2、修改server.xml配置文件

<firewall> 

  <whitehost>

     <host host="192.168.1.102" user="root"/>

     <host host="192.168.1.101" user="root"/>

     <host host="127.0.0.1" user="test"/>

     <host host="192.168.1.102" user="test"/>

  </whitehost>

       <blacklist check="true">

       </blacklist>

</firewall>

 

 

<user name="test">

<property name="password">root</property>

<property name="schemas">TESTDB</property>

<property name="readOnly">true</property>

</user>

 

<user name="root">

<property name="password">root</property>

<property name="schemas">TESTDB</property>

 

<!-- 表级 DML 权限设置 -->

<!--

<privileges check="false">

<schema name="TESTDB" dml="0110" >

<table name="tb01" dml="0000"></table>

<table name="tb02" dml="1111"></table>

</schema>

</privileges>

-->

</user>

错误解决方案



 

3、程序运行流程Debug

 

前端认证处理器 FrontendAuthenticator

 

 public void handle(byte[] data) {

        // check quit packet

        if (data.length == QuitPacket.QUIT.length && data[4] == MySQLPacket.COM_QUIT) {

            source.close("quit packet");

            return;

        }

 

        AuthPacket auth = new AuthPacket();

        auth.read(data);

 

         if (!checkUser(auth.user, source.getHost())) {

            failure(ErrorCode.ER_ACCESS_DENIED_ERROR, "Access denied for user '" + auth.user + "' with host '" + source.getHost()+ "'");

            return;

        }

}

 

  protected boolean checkUser(String user, String host) {

        return source.getPrivileges().userExists(user, host);

    }

 

 

MycatPrivileges权限提供者类

 @Override

    public boolean userExists(String user, String host) {

    //检查用户及白名单

    return checkFirewallWhiteHostPolicy(user, host);

    }

 

 

@Override

public boolean checkFirewallWhiteHostPolicy(String user, String host) {

 

MycatConfig mycatConfig = MycatServer.getInstance().getConfig();

        FirewallConfig firewallConfig = mycatConfig.getFirewall();

        

        //防火墙 白名单处理

        boolean isPassed = false;

        

        Map<String, List<UserConfig>> whitehost = firewallConfig.getWhitehost();

        if (whitehost == null || whitehost.size() == 0) {        

        Map<String, UserConfig> users = mycatConfig.getUsers();

        isPassed = users.containsKey(user);

       

        } else {        

            List<UserConfig> list = whitehost.get(host);

                if (list != null) {

                   for (UserConfig userConfig : list) {

                           if (userConfig.getName().equals(user)) {

                                 isPassed = true;

                                break;

                           }

                      }

               }        

        }

        

        if ( !isPassed ) {

        ALARM.error(new StringBuilder().append(Alarms.FIREWALL_ATTACK).append("[host=").append(host)

                     .append(",user=").append(user).append(']').toString());

        return false;

        }        

        return true;

}

  • 大小: 46.2 KB
0
3
分享到:
评论

相关推荐

    mycat1.6windows+linux.zip

    mycat1.6windows+linux.zip, 我就很不理解,为什么好多人上传的资料,下载都需要积分。0积分能咋地?官网能访问但是下载不了,后再巧合下在另外一个网站上下载的,我在这里给大家分享下。不需要积分也不需要花钱,...

    【Mycat1.6之操作SQLServer案例】

    【Mycat1.6与SQLServer操作案例详解】 Mycat是一款开源的分布式数据库中间件,它在大型分布式系统中扮演着数据库分片的角色,能够有效地解决单个数据库性能瓶颈的问题。Mycat 1.6是其一个重要版本,提供了更稳定、...

    Mycat 1.6 稳定版-linux环境 gz包.7z

    在本文中,我们将深入探讨Mycat 1.6稳定版在Linux环境下的安装、配置以及使用方法。 一、Mycat简介 Mycat的核心功能包括数据分片、读写分离和数据库集群管理。数据分片是将大表的数据分散到多个数据库中,以减轻...

    mycat1.6.7.5.zip

    在本压缩包"mycat1.6.7.5.zip"中,包含了在Linux环境下安装Mycat 1.6.7.5所需的所有关键组件,尤其是Java Development Kit (JDK) 1.8的安装文件,因为Mycat运行在Java平台上,所以JDK是其运行的前提。 首先,让我们...

    mycat-1.6.7.6_BYMONTH.zip

    基于MyCat1.6.7.6正式版的源码修改的,支持subTables的按月分表正则配置 subTables=“ tableName_$202101-?” subTableWay="BYMONTH" rule="sharding-by-month" 表示从202101月份开始进行分表处理,?表示当前日期的...

    mycat1.6.7.1.rar

    《Mycat数据库中间件详解——基于mycat1.6.7.1版本》 Mycat是一款开源的、基于Java开发的分布式数据库中间件,主要用于解决大数据量、高并发的分布式数据库架构问题。在本篇文章中,我们将深入探讨mycat1.6.7.1版本...

    Mycat1.6 安装步骤

    ### Mycat 1.6 安装步骤详解 #### 一、Mycat简介与应用场景 ...通过上述步骤,我们可以在RHEL服务器上顺利完成Mycat 1.6的安装与配置。这不仅有助于提升数据库的性能,还能够更好地支持大规模的数据处理需求。

    Mycat1.6源码

    《深入剖析Mycat 1.6源码》 Mycat是一款开源的分布式数据库中间件,它在Java平台上运行,旨在解决大数据分布式存储和处理的问题。Mycat 1.6版本是其一个重要的里程碑,它在前一版本的基础上进行了一系列的优化和...

    Mycat 1.6权威指南.pdf和1.5的word版

    总的来说,《Mycat 1.6权威指南》和《Mycat 1.5权威指南》是深入了解和掌握Mycat数据库中间件的重要资源,它们详细讲解了Mycat的架构、配置、管理和优化技巧,对于开发、运维人员来说,是必备的学习资料。...

    Mycat-1.6.7.3.zip

    Mycat-1.6.7.3是其的一个版本,通过下载并解压此压缩包,我们可以深入理解Mycat的配置与运行。 首先,解压"Mycat-1.6.7.3.zip"后,我们能看到其主要的文件结构。其中,`conf`目录包含了一系列配置文件,如`schema....

    MySql 中间件 Mycat 1.6.7.5 - release- win.tar windows 程序

    **安装与配置Mycat 1.6.7.5**: 1. 解压`Mycat-server-1.6.7.5-release-20210616151418-win.tar.gz`,获取Mycat的服务器端程序。 2. 修改`conf/server.xml`配置文件,配置数据库连接信息、分片规则等。 3. 初始化...

    mycat1.6.7.4

    【Mycat1.6.7.4:数据库中间件详解】 Mycat,作为一款强大的数据库中间件,它的出现是对阿里巴巴开源项目Cobar的一次革新与超越。Cobar是MySQL集群的一种解决方案,但随着时间的发展,社区发现它存在一些局限性,...

    linux的Mycat安装包1.6.7.4版本

    本篇文章将详细介绍如何在Linux环境下安装Mycat的1.6.7.4版本。 首先,了解Mycat的基本概念。Mycat是基于Java开发的,它的主要功能包括数据分片、读写分离、故障切换以及SQL路由等。通过数据分片,Mycat可以将大...

    mycat1.6jar包反编译的源码

    《深入解析mycat1.6源码:一次技术探索之旅》 Mycat,作为一款开源的分布式数据库中间件,广泛应用于大型分布式系统中,它实现了数据分片、读写分离、故障切换等功能,为高并发、大数据量的场景提供了优秀的解决...

    mycat-server,配置的postgresql集群的案例

    1. **安装与配置Mycat**: 下载Mycat-server的最新稳定版本,如你提到的"Mycat-server-1.6-成功版",根据官方文档进行安装,并配置Mycat的配置文件`server.xml`,设置数据节点(DataNode)以连接到PostgreSQL实例。...

    解决mycatJDBC8驱动连接Mycat1.6报错 Unknown system variable 'query_cache_size'

    标题中的问题涉及到的是在使用Mycat数据中间件时,尝试使用JDBC 8驱动连接到Mycat 1.6版本时遇到的一个错误:`Unknown system variable 'query_cache_size'`。这个问题出现的原因在于MySQL 8.0版本中移除了`query_...

    【Mycat1.6之操作Oracle案例】

    【Mycat1.6与Oracle操作案例详解】 在IT行业中,数据库管理是核心部分,尤其是在大型企业级应用中。Mycat是一个开源的分布式数据库中间件,它提供了数据库分片、读写分离、故障切换等功能,适用于高并发、大数据量...

    mycat1.6jar包

    当mycat的jar包的版本过低时,替换这个可解决问题.

    Mycat1.6.7.3版本

    《Mycat 1.6.7.3版本:分布式数据库中间件的深度解析》 Mycat,作为一款开源的、基于Java开发的数据库中间件,被广泛应用于分布式数据库系统中,它能够有效地解决大数据量下的高并发访问问题。在Mycat 1.6.7.3这个...

    Mycat-server-1.6.7.6-release-windows-linux.rar

    安装和配置Mycat时,需要修改相应的配置文件,如schema.xml定义数据节点和表的分片规则,server.xml配置Mycat服务器的启动参数。启动Mycat服务后,客户端应用程序可以像连接普通数据库一样连接Mycat,而背后的复杂分...

Global site tag (gtag.js) - Google Analytics