• 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 拦截功能列表

     

     

  • 相关阅读:
    [TCP/IP] HTTPS的工作原理
    [TCP/IP] SSL的通讯原理
    ESLint笔记
    MacBook Pro维修过程
    论前端工程化
    听书,怅然若失
    js实现Mac触摸板双指事件(上/下/左/右/放大/缩小)
    Windows和Mac浏览器启动本地程序
    科目三(番禺化龙展贸东路)考试录20170224
    写jQuery插件该注意的
  • 原文地址:https://www.cnblogs.com/HOsystem/p/14118072.html
Copyright © 2020-2023  润新知