zoukankan      html  css  js  c++  java
  • 5、Mycat安全

    1.权限配置

    [1].user标签

      目前 Mycat 对于中间件的连接控制并没有做太复杂的控制,目前只做了中间件逻辑库级别的读写权限控制。是通过 server.xml 的 user 标签进行配置。

    #server.xml配置文件user部分

    [root@host79 ~]# vim /usr/local/mycat/conf/server.xml

     

    <user name="mycat">

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

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

    </user>

    <user name="user">

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

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

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

    </user>

     

    (1).配置说明

    标签属性

    说明

    name

    应用连接中间件逻辑库的用户名

    password

    该用户对应的密码

    TESTDB

    应用当前连接的逻辑库中所对应的逻辑表。schemas 中可以配置一个或多个

    readOnly

    应用连接中间件逻辑库所具有的权限。true 为只读,false 为读写都有,默认为 false

    (2).测试案例

    #测试案例一

    # 使用user用户,权限为只读(readOnlytrue

    # 验证是否可以查询出数据,验证是否可以写入数据

    #1、用user用户登录,运行命令如下:

    mysql -uuser -puser -h 192.168.188.188 -P8066

    #2、切换到TESTDB数据库,查询orders表数据,如下:

    use TESTDB

    select * from orders;

    #3、可以查询到数据,如下图

    #4、执行插入数据sql

    insert into orders(id,order_type,customer_id,amount) values(7,101,101,10000);

    #5、可看到运行结果,插入失败,只有只读权限,如下图:

      

    #测试案例二

    # 使用mycat用户,权限为可读写(readOnlyfalse

    # 验证是否可以查询出数据,验证是否可以写入数据

    #1、用mycat用户登录,运行命令如下:

    mysql -umycat -p123456 -h 192.168.188.188 -P8066

    #2、切换到TESTDB数据库,查询orders表数据,如下:

    use TESTDB

    select * from orders;

    #3、可以查询到数据,如下图

    #4、执行插入数据sql

    insert into orders(id,order_type,customer_id,amount) values(7,101,101,10000);

    #5、可看到运行结果,插入成功,如下图:

     

    [2].privileges 标签

      持保留,因为privileges 打开后启动出现

     

    错误.mycat的版本信息Mycat-server-1.6-RELEASE-20161028204710-linux.tar

    2.SQL拦截

      firewall 标签用来定义防火墙;firewall 下 whitehost 标签用来定义 IP 白名单 ,blacklist 用来定义SQL 黑名单。

    [1].白名单

      可以通过设置白名单,实现某主机某用户可以访问 Mycat,而其他主机用户禁止访问

    #设置白名单

    #server.xml配置文件firewall标签

    #配置只有192.168.140.128主机可以通过mycat用户访问

    <firewall>

     <whitehost>

     <host host="192.168.140.128" user="mycat"/>

     </whitehost>

    </firewall>

     

     

    #重启Mycat后,192.168.140.128主机使用mycat用户访问

    mysql -umycat -p123456 -h 192.168.140.128 -P 8066

    #可以正常访问,如下图

    ##192.168.188.189主机用mycat用户访问,禁止访问

      

    #在此主机换user用户访问,禁止访问

     

    [2].黑名单

      可以通过设置黑名单,实现 Mycat 对具体 SQL 操作的拦截,如增删改查等操作的拦截.

    #设置白名单

    #server.xml配置文件firewall标签

    #配置禁止mycat用户进行删除操作

    <blacklist check="true">

      <property name="deleteAllow">false</property>

    </blacklist>

    #重启Mycat后,192.168.140.128主机使用mycat用户访问

    mysql -umycat -p123456 -h 192.168.188.188 -P 8066

    #可以正常访问,如下图

     

     

    #切换TESTDB数据库后,执行删除数据语句

    delete from orders where id=400200;

    #运行后发现已禁止删除数据,如下图

     

      可以设置的黑名单 SQL 拦截功能列表

     

     

  • 相关阅读:
    039、Data Volume 之 bind mount (2019-02-28 周四)
    038、Docker 的两类存储资源(2019-02-27 周三)
    037、外部网络如何访问容器 (2019-02-26 周二)
    036、容器如何访问外部世界 (2019-02-25 周一)
    035、容器间通信的三种方式(2019-02-22 周五)
    034、理解容器之间的连通性(2019-02-21 周四)
    033、如何自定义容器网络(2019-02-20 周三)
    032、学容器必须懂bridge网络(2019-02-19 周二)
    031、none和host网络的适用场景(2019-02-18 周一)
    030、实现容器的底层技术(2019-01-25 周五)
  • 原文地址:https://www.cnblogs.com/HOsystem/p/14118072.html
Copyright © 2011-2022 走看看