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用户,权限为只读(readOnly:true)

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

#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用户,权限为可读写(readOnly:false)

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

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

5、Mycat安全的更多相关文章

  1. MyCat源码分析系列之——结果合并

    更多MyCat源码分析,请戳MyCat源码分析系列 结果合并 在SQL下发流程和前后端验证流程中介绍过,通过用户验证的后端连接绑定的NIOHandler是MySQLConnectionHandler实 ...

  2. MyCat源码分析系列之——SQL下发

    更多MyCat源码分析,请戳MyCat源码分析系列 SQL下发 SQL下发指的是MyCat将解析并改造完成的SQL语句依次发送至相应的MySQL节点(datanode)的过程,该执行过程由NonBlo ...

  3. MyCat源码分析系列之——BufferPool与缓存机制

    更多MyCat源码分析,请戳MyCat源码分析系列 BufferPool MyCat的缓冲区采用的是java.nio.ByteBuffer,由BufferPool类统一管理,相关的设置在SystemC ...

  4. MyCat源码分析系列之——前后端验证

    更多MyCat源码分析,请戳MyCat源码分析系列 MyCat前端验证 MyCat的前端验证指的是应用连接MyCat时进行的用户验证过程,如使用MySQL客户端时,$ mysql -uroot -pr ...

  5. MyCat源码分析系列之——配置信息和启动流程

    更多MyCat源码分析,请戳MyCat源码分析系列 MyCat配置信息 除了一些默认的配置参数,大多数的MyCat配置信息是通过读取若干.xml/.properties文件获取的,主要包括: 1)se ...

  6. 开源分布式数据库中间件MyCat源码分析系列

    MyCat是当下很火的开源分布式数据库中间件,特意花费了一些精力研究其实现方式与内部机制,在此针对某些较为重要的源码进行粗浅的分析,希望与感兴趣的朋友交流探讨. 本源码分析系列主要针对代码实现,配置. ...

  7. mysql+mycat搭建稳定高可用集群,负载均衡,主备复制,读写分离

    数据库性能优化普遍采用集群方式,oracle集群软硬件投入昂贵,今天花了一天时间搭建基于mysql的集群环境. 主要思路 简单说,实现mysql主备复制-->利用mycat实现负载均衡. 比较了 ...

  8. 【无私分享:ASP.NET CORE 项目实战(第十三章)】Asp.net Core 使用MyCat分布式数据库,实现读写分离

    目录索引 [无私分享:ASP.NET CORE 项目实战]目录索引 简介 MyCat2.0版本很快就发布了,关于MyCat的动态和一些问题,大家可以加一下MyCat的官方QQ群:106088787.我 ...

  9. mycat入门教程

    github https://github.com/MyCATApache/Mycat-Server myCat介绍 myCat的诞生,要从其前身Amoeba和Cobar说起. Amoeba(变形虫) ...

  10. Mycat 全局系列号

    标签:utf8 概述 本篇文章介绍mycat怎样在分库分表的情况下保证主键的全局唯一方法,接下来就来分析三种方法各自的优缺点. 配置 文件方式获取 1.修改server配置文件 vim server. ...

随机推荐

  1. leetcode187. 重复的DNA序列

    所有 DNA 都由一系列缩写为 A,C,G 和 T 的核苷酸组成,例如:"ACGAATTCCG".在研究 DNA 时,识别 DNA 中的重复序列有时会对研究非常有帮助.编写一个函数 ...

  2. Let's Do 本地开发智能合约

    上篇文章我们发了个币,有人抱怨在线(remix)写代码不爽,好吧,那就来看下怎么在本地开发智能合约? 一.安装开发环境 1.安装Node,Node v8.9.4或更高版本 我安装的是: 2.集成开发框 ...

  3. 使用Python开发鸿蒙设备程序(0-初体验)

    到目前为止,鸿蒙设备开发的"官方指定语言"还是C语言! 这看起来是一件正常的事,毕竟鸿蒙设备开发还是属于嵌入式开发的范畴,而在嵌入式开发中C语言又是当之无愧的首选,所以,大家也都接 ...

  4. P6631 [ZJOI2020] 序列

    可以将问题用形象的方式来表述.给定一排点,第 \(i\) 个点有它需要的覆盖次数 \(a_i\).有两种线段,一种能覆盖连续的一些点,称其为连续线段:另一种能覆盖相邻间隔为 \(1\) 的一些点,称其 ...

  5. mysql 优化数据类型

    1.更小的通常更好 选择不会超过范围的最小类型 2.简单就好 例如,整型比字符操作代价更低,因为字符集和校对规则(排序规则)使字符比较比整形比较更复杂. 3.尽量避免null 如果查询中包含可为nul ...

  6. tomcat安装及环境变量配置

    java环境的配置应该都学过吧,这里简单的讲一下. 下载安装java JDK,注意安装的路径,我们需要进行环境变量的配置. 2 安装完成以后,配置环境变量 环境变量的配置这里就以win7为例:右击计算 ...

  7. 我与PHP,ULM和Vue.js不得不说的故事(一个放荡不羁与一个神神秘秘一个似曾相识,从入门到放弃记录第二章)

    ·关于UML(git) 究竟是命运在茫茫语言之中遇到了你,还是我的魅力让你向我奔涌而来.好吧都不是,我俩就像古代包办婚姻,被专业牢牢的绑在一起了,既然都是一条绳上的蚂蚱.我我们应该能体谅彼此的不容易, ...

  8. 2020.11.30【NOIP提高A组】模拟赛反思

    90,rk42 T1 考试的时候觉得可以贪心,就每次找到最大的,然后以它为根去遍历每个子树,求出其最大值,然后删去这个点.一直持续直到边删完,时间复杂度\(O(n^2)\),然后想了想链的情况,没有打 ...

  9. 基于CFSSL工具创建CA证书,服务端证书,客户端证书

    背景描述 在局域网中部署组件时,想要通过证书来实现身份的认证,确保通信的安全性,可以通过cfssl工具来进行CA证书,服务端证书,客户端证书的创建. 目录 背景描述 部署cfssl工具 下载,上传cf ...

  10. 【JAVA】SSM开源项目源码--城市学院移动后勤-毕业设计(Spring SpringMvc Mybatis Mui Redis )

    项目简介 大学时期老师给我做的项目,学校后勤管理中心,也作为毕业设计项目. 有 后勤保修 二手交易 失物招领 后勤通知 等功能. 城市学院移动后勤 有APP端(webapp)和WEB端(PC) 后端使 ...