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用户,权限为只读(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安全的更多相关文章
- MyCat源码分析系列之——结果合并
更多MyCat源码分析,请戳MyCat源码分析系列 结果合并 在SQL下发流程和前后端验证流程中介绍过,通过用户验证的后端连接绑定的NIOHandler是MySQLConnectionHandler实 ...
- MyCat源码分析系列之——SQL下发
更多MyCat源码分析,请戳MyCat源码分析系列 SQL下发 SQL下发指的是MyCat将解析并改造完成的SQL语句依次发送至相应的MySQL节点(datanode)的过程,该执行过程由NonBlo ...
- MyCat源码分析系列之——BufferPool与缓存机制
更多MyCat源码分析,请戳MyCat源码分析系列 BufferPool MyCat的缓冲区采用的是java.nio.ByteBuffer,由BufferPool类统一管理,相关的设置在SystemC ...
- MyCat源码分析系列之——前后端验证
更多MyCat源码分析,请戳MyCat源码分析系列 MyCat前端验证 MyCat的前端验证指的是应用连接MyCat时进行的用户验证过程,如使用MySQL客户端时,$ mysql -uroot -pr ...
- MyCat源码分析系列之——配置信息和启动流程
更多MyCat源码分析,请戳MyCat源码分析系列 MyCat配置信息 除了一些默认的配置参数,大多数的MyCat配置信息是通过读取若干.xml/.properties文件获取的,主要包括: 1)se ...
- 开源分布式数据库中间件MyCat源码分析系列
MyCat是当下很火的开源分布式数据库中间件,特意花费了一些精力研究其实现方式与内部机制,在此针对某些较为重要的源码进行粗浅的分析,希望与感兴趣的朋友交流探讨. 本源码分析系列主要针对代码实现,配置. ...
- mysql+mycat搭建稳定高可用集群,负载均衡,主备复制,读写分离
数据库性能优化普遍采用集群方式,oracle集群软硬件投入昂贵,今天花了一天时间搭建基于mysql的集群环境. 主要思路 简单说,实现mysql主备复制-->利用mycat实现负载均衡. 比较了 ...
- 【无私分享:ASP.NET CORE 项目实战(第十三章)】Asp.net Core 使用MyCat分布式数据库,实现读写分离
目录索引 [无私分享:ASP.NET CORE 项目实战]目录索引 简介 MyCat2.0版本很快就发布了,关于MyCat的动态和一些问题,大家可以加一下MyCat的官方QQ群:106088787.我 ...
- mycat入门教程
github https://github.com/MyCATApache/Mycat-Server myCat介绍 myCat的诞生,要从其前身Amoeba和Cobar说起. Amoeba(变形虫) ...
- Mycat 全局系列号
标签:utf8 概述 本篇文章介绍mycat怎样在分库分表的情况下保证主键的全局唯一方法,接下来就来分析三种方法各自的优缺点. 配置 文件方式获取 1.修改server配置文件 vim server. ...
随机推荐
- JQuery案例:折叠菜单
折叠菜单(jquery) <html> <head> <meta charset="UTF-8"> <title>accordion ...
- 【操作系统】银行家算法实现(C语言)
[操作系统]银行家算法实现(C语言) 注意:本人编码水平很菜.算是自己的一个总结.可能会有我还没有发现的bug.如果有人发现后可以指出,不胜感激. 1.银行家算法: 我们可以把操作系统看作是银行家,操 ...
- volatile使用
mq的故障延迟机制:
- z-index失效原因分析——由一个bug引发的对层叠上下文和z-index属性的深度思考
新年刚开工就被一个bug虐得整个人都不好了,特地记录下. (一)bug描述 在一个fixed-data-table(一个React组件)制作的表格中,需要给表头的字段提示的特效,所以做了一个提示层,但 ...
- 记一次腾讯TBS浏览服务集成实践
这次的分享源于最近的实际开发工作. 项目需求是 在原生Android应用中嵌入WebView,放置用于支撑音视频直播业务的Web页: 另外还需提供Word.Excel.PowerPoint.PDF等常 ...
- [从源码学设计]蚂蚁金服SOFARegistry之消息总线
[从源码学设计]蚂蚁金服SOFARegistry之消息总线 目录 [从源码学设计]蚂蚁金服SOFARegistry之消息总线 0x00 摘要 0x01 相关概念 1.1 事件驱动模型 1.1.1 概念 ...
- DBeaver连接达梦|虚谷|人大金仓等国产数据库
前言 工作中有些项目可能会接触到「达梦.虚谷.人大金仓」等国产数据库,但通常这些数据库自带的连接工具使用并不方便,所以这篇文章记录一下 DBeaver 连接国产数据库的通用模版,下文以达梦为例(其他国 ...
- linux搭建harbor与使用
条件:安装docker&docker-compose 如未安装,请看:linux离线安装docker + docker-compose harbor 1.下载 下载地址:https://git ...
- PyQt(Python+Qt)学习随笔:Qt Designer中部件的geometry几何属性
geometry属性保存部件相对于其父级对象的位置和大小,Qt实际上是以一个长方形来表示部件的位置和大小的,包括左上角的坐标位置.长度和宽带. 当部件的geometry调整时,部件如果可见将立即接收m ...
- PostMan设置环境变量&全局变量
一.设置环境变量 1.点击右上角Manage Environment,进入环境变量设置界面 2.定义环境名称,参数名及参数值 3.将接口地址中服务器地址进行参数化,并选择对应的环境执行 二.设置全局变 ...