MyCat配置文件详解(一),如何才能通过一线互联网公司面试

| packetHeaderSize | |指定MySQL协议中的报文头长度, 默认4个字节
| maxPacketSize | |指定MySQL协议可以携带的数据最大大小, 默认值为16M
|idleTimeout|30|指定连接的空闲时间的超时长度;如果超时,将关闭资源并回收, 默认30分钟
| txIsolation | 1,2,3,4 |初始化前端连接的事务隔离级别,默认为 REPEATED_READ , 对应数字为3 READ_UNCOMMITED=1; READ_COMMITTED=2; REPEATED_READ=3; SERIALIZABLE=4;
|sqlExecuteTimeout | 300 |执行SQL的超时时间, 如果SQL语句执行超时,将关闭连接; 默认300秒;
|serverPort|8066|定义MyCat的使用端口, 默认8066
|managerPort | 9066 |定义MyCat的管理端口, 默认9066


参考资料:《开源数据库中间件MyCat实战笔记》
快速入手通道:发送简信“MyCat资料”免费获取

二、user 标签

123456 ITCAST true 1000 0

user标签主要用于定义登录MyCat的用户和权限 :

  1. <user name="root" defaultAccount="true"> : name 属性用于声明用户名 ;
  2. <property name="password">123456</property> : 指定该用户名访问MyCat的密码;
  3. <property name="schemas">ITCAST</property> : 能够访问的逻辑库, 多个的话, 使用 “,” 分割
  4. <property name="readOnly">true</property> : 是否只读
  5. <property name="benchmark">11111</property> : 指定前端的整体连接数量 , 0或不设置表示不限制
  6. <property name="usingDecrypt">0</property> : 是否对密码加密默认 0 否 , 1是

java -cp Mycat-server-1.6.7.3-release.jar io.mycat.util.DecryptUtil 0:root:123456

  1. <privileges check="false">

A.对用户的 schema 及 下级的 table 进行精细化的 DML 权限控制;

B. privileges 节点中的 check 属性是用于标识是否开启 DML 权限检查, 默认 false 标识不检查,当然 privileges 节点 不配置,等同 check=false, 由于 Mycat 一个用户的 schemas 属性 可配置多个 schema ,所以 privileges 的下级节点 schema 节点 同样可配置多个,对多库多表进行细粒度的 DML 权限控制;

C.权限修饰符四位数字(0000 - 1111),对应的操作是 IUSD ( 增,改,查,删 )。同时配置了库跟表的权限,就近原则。以表权限为准。

三、firewall 标签

firewall标签 用来定义防火墙;firewallwhitehost标签 用来定义 IP白名单 ,blacklist 用来定义 SQL黑名单。

false

黑名单拦截明细配置:

配置项缺省值描述
selelctAllowtrue是否允许执行 SELECT 语句
selectAllColumnAllowtrue是否允许执行 SELECT * FROM T 这样的语句。如果设置为 false,不允许执行 select * fromt,但可以 select * from (select id, name from t) a。这个选项是防御程序通过调用 select * 获得数据表的结构信息。
selectIntoAllowtrueSELECT 查询中是否允许 INTO 字句
deleteAllowtrue是否允许执行 DELETE 语句
updateAllowtrue是否允许执行 UPDATE 语句
insertAllowtrue是否允许执行 INSERT 语句
replaceAllowtrue是否允许执行 REPLACE 语句
mergeAllowtrue是否允许执行 MERGE 语句,这个只在 Oracle 中有用
callAllowtrue是否允许通过 jdbc 的 call 语法调用存储过程
setAllowtrue是否允许使用 SET 语法
truncateAllowtruetruncate 语句是危险,缺省打开,若需要自行关闭
createTableAllowtrue是否允许创建表
alterTableAllowtrue是否允许执行 Alter Table 语句
dropTableAllowtrue是否允许修改表
commentAllowfalse是否允许语句中存在注释,Oracle 的用户不用担心,Wall 能够识别 hints和注释的区别
noneBaseStatementAllowfalse是否允许非以上基本语句的其他语句,缺省关闭,通过这个选项就能够屏蔽 DDL。
multiStatementAllowfalse是否允许一次执行多条语句,缺省关闭
useAllowtrue是否允许执行 mysql 的 use 语句,缺省打开
describeAllowtrue是否允许执行 mysql 的 describe 语句,缺省打开
showAllowtrue是否允许执行 mysql 的 show 语句,缺省打开
commitAllowtrue是否允许执行 commit 操作
rollbackAllowtrue是否允许执行 roll back 操作
拦截配置-永真条件
selectWhereAlwayTrueChecktrue检查 SELECT 语句的 WHERE 子句是否是一个永真条件
selectHavingAlwayTrueChecktrue检查 SELECT 语句的 HAVING 子句是否是一个永真条件
deleteWhereAlwayTrueChecktrue检查 DELETE 语句的 WHERE 子句是否是一个永真条件
deleteWhereNoneCheckfalse检查 DELETE 语句是否无 where 条件,这是有风险的,但不是 SQL 注入类型的风险
updateWhereAlayTrueChecktrue检查 UPDATE 语句的 WHERE 子句是否是一个永真条件
updateWhereNoneCheckfalse检查 UPDATE 语句是否无 where 条件,这是有风

《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》

【docs.qq.com/doc/DSmxTbFJ1cmN1R2dB】 完整内容开源分享

险的,但不是SQL 注入类型的风险
|conditionAndAlwayTrueAllow|false|检查查询条件(WHERE/HAVING 子句)中是否包含 AND 永真条件
| conditionAndAlwayFalseAllow | false |检查查询条件(WHERE/HAVING 子句)中是否包含 AND 永假条件
| conditionLikeTrueAllow | true |检查查询条件(WHERE/HAVING 子句)中是否包含 LIKE 永真条件
|其他拦截配置||
| selectIntoOutfileAllow | false |SELECT … INTO OUTFILE 是否允许,这个是 mysql 注入攻击的常见手段,缺省是禁止的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值