| 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 0user标签主要用于定义登录MyCat的用户和权限 :
<user name="root" defaultAccount="true">: name 属性用于声明用户名 ;<property name="password">123456</property>: 指定该用户名访问MyCat的密码;<property name="schemas">ITCAST</property>: 能够访问的逻辑库, 多个的话, 使用 “,” 分割<property name="readOnly">true</property>: 是否只读<property name="benchmark">11111</property>: 指定前端的整体连接数量 , 0或不设置表示不限制<property name="usingDecrypt">0</property>: 是否对密码加密默认 0 否 , 1是
java -cp Mycat-server-1.6.7.3-release.jar io.mycat.util.DecryptUtil 0:root:123456
<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标签 用来定义防火墙;firewall 下 whitehost标签 用来定义 IP白名单 ,blacklist 用来定义 SQL黑名单。
黑名单拦截明细配置:
| 配置项 | 缺省值 | 描述 |
|---|---|---|
| selelctAllow | true | 是否允许执行 SELECT 语句 |
| selectAllColumnAllow | true | 是否允许执行 SELECT * FROM T 这样的语句。如果设置为 false,不允许执行 select * fromt,但可以 select * from (select id, name from t) a。这个选项是防御程序通过调用 select * 获得数据表的结构信息。 |
| selectIntoAllow | true | SELECT 查询中是否允许 INTO 字句 |
| deleteAllow | true | 是否允许执行 DELETE 语句 |
| updateAllow | true | 是否允许执行 UPDATE 语句 |
| insertAllow | true | 是否允许执行 INSERT 语句 |
| replaceAllow | true | 是否允许执行 REPLACE 语句 |
| mergeAllow | true | 是否允许执行 MERGE 语句,这个只在 Oracle 中有用 |
| callAllow | true | 是否允许通过 jdbc 的 call 语法调用存储过程 |
| setAllow | true | 是否允许使用 SET 语法 |
| truncateAllow | true | truncate 语句是危险,缺省打开,若需要自行关闭 |
| createTableAllow | true | 是否允许创建表 |
| alterTableAllow | true | 是否允许执行 Alter Table 语句 |
| dropTableAllow | true | 是否允许修改表 |
| commentAllow | false | 是否允许语句中存在注释,Oracle 的用户不用担心,Wall 能够识别 hints和注释的区别 |
| noneBaseStatementAllow | false | 是否允许非以上基本语句的其他语句,缺省关闭,通过这个选项就能够屏蔽 DDL。 |
| multiStatementAllow | false | 是否允许一次执行多条语句,缺省关闭 |
| useAllow | true | 是否允许执行 mysql 的 use 语句,缺省打开 |
| describeAllow | true | 是否允许执行 mysql 的 describe 语句,缺省打开 |
| showAllow | true | 是否允许执行 mysql 的 show 语句,缺省打开 |
| commitAllow | true | 是否允许执行 commit 操作 |
| rollbackAllow | true | 是否允许执行 roll back 操作 |
| 拦截配置-永真条件 | ||
| selectWhereAlwayTrueCheck | true | 检查 SELECT 语句的 WHERE 子句是否是一个永真条件 |
| selectHavingAlwayTrueCheck | true | 检查 SELECT 语句的 HAVING 子句是否是一个永真条件 |
| deleteWhereAlwayTrueCheck | true | 检查 DELETE 语句的 WHERE 子句是否是一个永真条件 |
| deleteWhereNoneCheck | false | 检查 DELETE 语句是否无 where 条件,这是有风险的,但不是 SQL 注入类型的风险 |
| updateWhereAlayTrueCheck | true | 检查 UPDATE 语句的 WHERE 子句是否是一个永真条件 |
| updateWhereNoneCheck | false | 检查 UPDATE 语句是否无 where 条件,这是有风险的,但不是SQL 注入类型的风险 |
| conditionAndAlwayTrueAllow | false | 检查查询条件(WHERE/HAVING 子句)中是否包含 AND 永真条件 |
| conditionAndAlwayFalseAllow | false | 检查查询条件(WHERE/HAVING 子句)中是否包含 AND 永假条件 |
| conditionLikeTrueAllow | true | 检查查询条件(WHERE/HAVING 子句)中是否包含 LIKE 永真条件 |
| 其他拦截配置 | ||
| selectIntoOutfileAllow | false | SELECT … INTO OUTFILE 是否允许,这个是 mysql 注入攻击的常见手段,缺省是禁止的 |
| selectUnionCheck | true | 检测 SELECT UNION |
| selectMinusCheck | true | 检测 SELECT MINUS |
| selectExceptCheck | true | 检测 SELECT EXCEPT |
:server-xml代码详细解读!&spm=1001.2101.3001.5002&articleId=142325009&d=1&t=3&u=be7d20127f8a49ffbead873716bdb4d0)
736

被折叠的 条评论
为什么被折叠?



