【MyCat】第7章---- Mycat 安全设置

文章目录

  • 7.1 权限配置
    • 1、 user 标签权限控制
  • 7.2 SQL 拦截
    • 1、 白名单
    • 2、 黑名单

7.1 权限配置

1、 user 标签权限控制

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

#server.xml配置文件user部分<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>

配置说明

测试案例
#测试案例一
#使用user用户,权限为只读(readOnly:true)
#验证是否可以查询出数据,验证是否可以写入数据
#1、用user用户登录,运行命令如下:
mysql -uuser -puser -h 192.168.140.128 -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-h192.168.140.128-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 标签权限控制
在 user 标签下的 privileges 标签可以对逻辑库(schema)、表(table)进行精细化的 DML 权限控
制。
privileges 标签下的 check 属性,如为 true 开启权限检查,为 false 不开启,默认为 false。
由于 Mycat 一个用户的 schemas 属性可配置多个逻辑库(schema) ,所以 privileges 的下级
节点 schema 节点同样可配置多个,对多库多表进行细粒度的 DML 权限控制。

#server.xml配置文件privileges部分 #配置orders表没有增删改查权限<user name="mycat"><property name="password">123456</property><property name="schemas">TESTDB</property><!--表级 DML 权限设置--><privileges check="true"><schema name="TESTDB"dml="1111"><table name="orders"dml="0000"></table><!--<table name="tb02"dml="1111"></table>--></schema></privileges></user>

配置说明

测试案例

#测试案例一 # 使用mycat用户,privileges配置orders表权限为禁止增删改查(dml="0000") # 验证是否可以查询出数据,验证是否可以写入数据 #1、重启mycat,用mycat用户登录,运行命令如下: mysql-umycat-p123456-h192.168.140.128-P8066 #2、切换到TESTDB数据库,查询orders表数据,如下: use TESTDB select*from orders;#3、禁止该用户查询数据,如下图

#4、执行插入数据sql,如下:
insert into orders(id,order_type,customer_id,amount) values(8,101,101,10000);
#5、可看到运行结果,禁止该用户插入数据,如下图:

#测试案例二
#使用mycat用户,privileges配置orders表权限为可以增删改查(dml=“1111”)
#验证是否可以查询出数据,验证是否可以写入数据
#1、重启mycat,用mycat用户登录,运行命令如下:

mysql-umycat-p123456-h192.168.140.128-P8066

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

use TESTDB select*from orders;

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

#4、执行插入数据sql,如下:

insert intoorders(id,order_type,customer_id,amount)values(8,101,101,10000);

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

#4、执行插入数据sql,如下:
delete from orders where id in (7,8);
#5、可看到运行结果,插入成功,如下图:

7.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-h192.168.140.128-P8066#可以正常访问,如下图

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

#在192.168.140.127主机用mycat用户访问,禁止访问

2、 黑名单

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

#设置黑名单 #server.xml配置文件firewall标签 #配置禁止mycat用户进行删除操作<firewall><whitehost><host host="192.168.140.128"user="mycat"/></whitehost><blacklist check="true"><property name="deleteAllow">false</property></blacklist></firewall>#如下图

#重启Mycat后,192.168.140.128主机使用mycat用户访问
mysql -umycat -p123456 -h 192.168.140.128 -P 8066
#可以正常访问,如下图

#切换TESTDB数据库后,执行删除数据语句
delete from orders where id=7;
#运行后发现已禁止删除数据,如下图

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

如果文章对你有一点点帮助,欢迎【点赞、留言、+ 关注】
您的关注是我创作的动力!若有疑问/交流/需求,欢迎留言/私聊!
多一个朋友多一条路!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1220748.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何打造摄影作品集?

&#x1f4f7;我是一个摄影师&#xff0c;我有很多图片&#xff0c;我想搭建一个像小红书这样排版的相册&#xff0c;需要支持图片分类&#xff0c;平时方便分享给客户看样片 看我们&#xff0c;快看我们&#x1f64b;土著相册可以完全满足你的全部需求❗❗❗ ⬇️下面将介绍如…

【MyCat】第2章 ----安装启动

文章目录2.1 安装1、解压后即可使用2、三个配置文件2.2 启动2.3 登录2.1 安装 1、解压后即可使用 安装包&#xff1a;Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz 解压缩文件拷贝到 linux 下 /usr/local/ 2、三个配置文件 ①schema.xml&#xff1a;定义逻辑库&a…

【ShardingJDBC 】【笔记】---- Sharding-JDBC 读写分离 配置 MySQL 主从

文章目录 第一步 新增 mysql 实例第二步 修改主、从库的配置文件新增内容如下第三步 创建用于主从复制的账号第四步 设置从库向主库同步数据Sharding-JDBC 读写分离配置 第一步 新增 mysql 实例 复制原有 mysql 如&#xff1a;D:\mysql-5.7.25(作为主库) -> D:\mysql-5.7.2…

【MyCat】第1章 ----入门概述

文章目录 第一章:入门介绍2、为什么要用Mycat&#xff1f;1、读写分离2、数据分片3、多数据源整合 3 、原理 第一章:入门介绍 Mycat 是数据库中间件。 1、数据库中间件 中间件&#xff1a;是一类连接软件组件和应用的计算机软件&#xff0c;以便于软件各部件之间的沟通。 例子…

【MyCat】第3章 ----搭建读写分离

文章目录 3.1 搭建一主一从1、 搭建 MySQL 数据库主从复制2、 修改 Mycat 的配置文件 schema.xml3、 启动 Mycat4、 验证读写分离 3.2 搭建双主双从1、 搭建 MySQL 数据库主从复制&#xff08;双主双从&#xff09;2、 修改 Mycat 的配置文件 schema.xml3、 启动 Mycat4、 验证…

【MyCat】第4章 ----垂直拆分——分库

文章目录 4.1 如何划分表4.2 实现分库1、 修改 schema 配置文件2、 新增两个空白库3、 启动 Mycat4、 访问 Mycat 进行分库 一个数据库由很多表的构成&#xff0c;每个表对应着不同的业务&#xff0c;垂直切分是指按照业务将表进行分类&#xff0c;分布到不同 的数据库上面&…

【MyCat】第5章----水平拆分——分表

文章目录5.1 实现分表1、 选择要拆分的表2、 分表字段3、 修改配置文件 schema.xml4、 修改配置文件 rule.xml5、 在数据节点 dn2 上建 orders 表6、 重启 Mycat&#xff0c;让配置生效7、 访问 Mycat 实现分片5.3 常用分片规则1、 取模2、 分片枚举3、 范围约定5.4 全局序列1、…

​​​​​​​刷爆朋友圈的“香蕉模型”,到底是什么来头?

关注我们 最近AI圈子又变天了 大家都在讨论一个新词 叫做香蕉模型 你可能第一次听说 但在极客圈它已经杀疯了 为什么叫它香蕉 因为它主打的就是 剥皮即食 简单好用且能量巨大 相比于那些庞大的巨无霸模型 香蕉模型更轻量 反应速度更快 而且成本低到令人发指 很多做…

深入解析:python3GUI--短视频社交软件 By:Django+PyQt5(前后端分离项目)

深入解析:python3GUI--短视频社交软件 By:Django+PyQt5(前后端分离项目)2026-01-26 20:40 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x:…

hot100 105.从前序与中序遍历序列构造二叉树

见代码随想录 105.从前序与中序遍历构造二叉树

hot100 437.路径总和Ⅲ

思路&#xff1a;前缀和解法&#xff0c;利用前缀和求节点值之和等于targetSum的路径的数目&#xff08;满足路径不需要从根节点开始&#xff0c;也不需要在叶子节点结束&#xff0c;但是路径方向必须是向下的&#xff0c;只能从父节点到子节点&#xff09;。 一、前缀和定义&…

hot100 236.二叉树的最近公共祖先

见代码随想录 236.二叉树的最近公共祖先

考研C语言专题练习

考研C语言专题练习 引言 这篇文章的本质是我学完考研C语言之后做的针对所学内容的练习题目 题目一&#xff1a;挂盐水 题目链接&#xff1a;http://oj.lgwenda.com/problem/1014 这是我的想法&#xff0c;得分50&#xff0c;我的问题在于代码逻辑完全误解了题目描述的滴水和停顿…

太阳敏感器的高精度补偿标定方法

微纳卫星技术快速发展&#xff0c;太阳敏感器与磁强计、陀螺仪组成联合定姿系统&#xff0c;广泛用于太阳方位角测量。但传统产品存在精度不足的问题&#xff0c;现有补偿方法存在参数冗余、误差源覆盖不全或流程繁琐等问题。本文基于紫创测控luminbox的太阳光模拟器搭建标定系…

鼎先电子提供200多款从单通道到多通道的ESD防护器件,快充ESD解决方案

ESD8LVL5.0CT5G 0.25pF,4A ,40W低电容静电防护器件&#xff0c;旨在保护电压敏感元件免受静电放电&#xff08;ESD&#xff09;影响。出色的钳位能力、低泄漏和快速响应时间&#xff0c;使这些器件非常适合用于电路板空间有限的设计中的ESD保护。由于其尺寸小巧&#xff0c;适…

大功率防雷器件,低容集成阵列TVS

LC03-6.TBT,LC03-6R2G大功率集成阵列TVS Array 产品概述 TVS二极管是敏感半导体元件板级保护的理想选择。LCO3-6将TVS二极管与整流桥相结合&#xff0c;以单个器件在共模和差分模式下提供瞬态保护。器件的电容最小化(<25pF)&#xff0c;以确保高速线路上正确的信号传输。…

SOD-523二极管提供1线ESD保护(单向和双向)。这些器件符合IEC 61000-4-2标准DC0501D5 DC0521D5

SOD-523 ESD保护二极管采用小巧紧凑的封装&#xff0c;符合Rohs标准。SOD-523二极管提供1线ESD保护&#xff08;单向和双向&#xff09;。这些器件符合IEC 61000-4-2标准&#xff08;30/15kV接触放电和30/15kV空气放电&#xff09;。SOD-523 ESD保护二极管的工作电压为3.3V、5V…

7个 Golang 官方文档没细说的高效技巧

Go 的语法确实简单&#xff0c;但要在生产环境写出高性能代码&#xff0c;光靠语法糖是不够的。但很多时候&#xff0c;写出能跑的代码只是及格线&#xff0c;写出高性能、内存友好且易于维护的代码才是真正的门槛。 为了省心&#xff0c;我最近把本地环境换成了 ServBay。它最…

代码通胀时代,AI生成的代码需要 12 倍审查成本?

近日&#xff0c;有人在 Reddit 上算了一笔账&#xff0c;贡献者用 AI 生成一个 Pull Request (PR) 只需要 7 分钟&#xff0c;而维护者为了理解逻辑、排查隐患、测试运行&#xff0c;平均要花 85 分钟。 这就是著名的 Brandolini 定律&#xff08;又叫废话不对称原则&#xf…

c++ release下的debug

debug方法1,查看堆栈 最直接&#xff0c;调用顺序是最上面的最近调用。往下点直到自己的代码位置2&#xff0c;debug断点 3&#xff0c;查看内存&#xff1a;&#xff08;&#xff09;4&#xff0c;断电右键添加监视窗口 5&#xff0c;条件断点 release下设置断点调试的…