2026/4/6 7:50:51
网站建设
项目流程
重庆网站优化公司怎么样,网站带支付模板,网站推广软件app,专业建设网站建站文章目录7.1 权限配置1、 user 标签权限控制7.2 SQL 拦截1、 白名单2、 黑名单7.1 权限配置
1、 user 标签权限控制
目前 Mycat 对于中间件的连接控制并没有做太复杂的控制#xff0c;目前只做了中间件逻辑库级别的读写权限控制。是通过 server.xml 的 user 标签进行配置。 …文章目录7.1 权限配置1、 user 标签权限控制7.2 SQL 拦截1、 白名单2、 黑名单7.1 权限配置1、 user 标签权限控制目前 Mycat 对于中间件的连接控制并没有做太复杂的控制目前只做了中间件逻辑库级别的读写权限控制。是通过 server.xml 的 user 标签进行配置。#server.xml配置文件user部分user namemycatproperty namepassword123456/propertyproperty nameschemasTESTDB/property/useruser nameuserproperty namepassworduser/propertyproperty nameschemasTESTDB/propertyproperty namereadOnlytrue/property/user配置说明测试案例#测试案例一#使用user用户权限为只读readOnlytrue#验证是否可以查询出数据验证是否可以写入数据#1、用user用户登录运行命令如下mysql -uuser -puser -h 192.168.140.128 -P8066#2、切换到TESTDB数据库查询orders表数据如下use TESTDBselect * 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-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 namemycatproperty namepassword123456/propertyproperty nameschemasTESTDB/property!--表级 DML 权限设置--privileges checktrueschema nameTESTDBdml1111table nameordersdml0000/table!--table nametb02dml1111/table--/schema/privileges/user配置说明测试案例#测试案例一 # 使用mycat用户privileges配置orders表权限为禁止增删改查dml0000 # 验证是否可以查询出数据验证是否可以写入数据 #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用户访问firewallwhitehosthost host192.168.140.128usermycat//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用户进行删除操作firewallwhitehosthost host192.168.140.128usermycat//whitehostblacklist checktrueproperty namedeleteAllowfalse/property/blacklist/firewall#如下图#重启Mycat后192.168.140.128主机使用mycat用户访问mysql -umycat -p123456 -h 192.168.140.128 -P 8066#可以正常访问如下图#切换TESTDB数据库后执行删除数据语句delete from orders where id7;#运行后发现已禁止删除数据如下图可以设置的黑名单 SQL 拦截功能列表如果文章对你有一点点帮助欢迎【点赞、留言、 关注】您的关注是我创作的动力若有疑问/交流/需求欢迎留言/私聊多一个朋友多一条路