Chinaunix首页 | 论坛 | 博客
  • 博客访问: 759724
  • 博文数量: 99
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1163
  • 用 户 组: 普通用户
  • 注册时间: 2016-09-22 09:50
个人简介

一个守望数据库的老菜鸟

文章分类

全部博文(99)

文章存档

2019年(21)

2018年(17)

2017年(37)

2016年(24)

我的朋友

分类: Mysql/postgreSQL

2017-12-25 17:23:38

博客文章除注明转载外,均为原创。转载请注明出处。
本文链接地址:http://blog.chinaunix.net/uid-31396856-id-5781522.html

    Mycat 1.6的用户权限管理是通过server.xml实现的。在server.xml中通过用户标签和防火墙标签进行配置管理的
一、用户标签:


1、用户配置属性
      
(1)设置password属性,设置用户的密码
(2)修改 readOnly 为 true 或 false 来限制用户对数据库是否可读写的权限,true为只读,false为读写
(3)修改 schemas 内的文本来控制用户可放问的 schema,多个schema用,号隔开
(4)设置benchmark属性:benchmark 基准, 当前端的整体 connection 数达到基准值是, 对来自该账户的请求开始拒绝连接,0 或不设表示不限制。
(5)设置usingDecrypt属性:是否对密码加密默认 0 否 如需要开启配置 1,同时使用加密程序对密码加密,加密命令方法是执行mycat的jar程序:
java -cp Mycat-server-1.6.1-dev.jar org.opencloudb.util.DecryptUtil 0:user:password

2.子权限管理
对表级别对权限进行管理是通过privileges 子节点,配置如下

       
      对用户的 schema 及 下级的 table 进行精细化的 DML 权限控制,privileges 节点中的 check 属性是用 于标识是否开启 DML 权限检查, 默认 false 标识不检查,如果 privileges 节点不配置,就等同于check=false。


dml权限顺序为:insert(新增),update(修改),select(查询),delete(删除),0000--> 1111,0为禁止权限,1为开启权限。
例如对schema设置权限

例如对table设置权限

设置了 schema , 但只设置了个别 table 或 未设置 table 的 DML,自动继承 schema 的 DML 属性

二、防火墙配置管理
       防火墙就是网络层对请求的地址进行限制,主要是从安全角度来保证Mycat不被匿名IP进行访问,通过白名单和 SQL 黑名单对服务器进行详细对权限控制。

在 server.xml 中配置:
 
以下具体说明摘自于mycat官方文档
黑名单拦截明细
selelctAllow true 是否允许执行SELECT语句 
selectAllColumnAllow true 是否允许执行SELECT * FROM T这样的语句。如果设置为false,不允许执行select * from t,但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 
selectIntersectCheck true 检测SELECT INTERSECT 
mustParameterized false 是否必须参数化,如果为True,则不允许类似WHERE ID = 1这种不参数化的SQL 
strictSyntaxCheck true 是否进行严格的语法检测,Druid SQL Parser在某些场景不能覆盖所有的SQL语法,出现解析SQL出错,可以临时把这个选项设置为false,同时把SQL反馈给Druid的开发者。 
conditionOpXorAllow false 查询条件中是否允许有XOR条件。XOR不常用,很难判断永真或者永假,缺省不允许。 
conditionOpBitwseAllow true 查询条件中是否允许有"&"、"~"、"|"、"^"运算符。 
conditionDoubleConstAllow false 查询条件中是否允许连续两个常量运算表达式 
minusAllow true 是否允许SELECT * FROM A MINUS SELECT * FROM B这样的语句
intersectAllow true 是否允许SELECT * FROM A INTERSECT SELECT * FROM B这样的语句 
constArithmeticAllow true 拦截常量运算的条件,比如说WHERE FID = 3 - 1,其中"3 - 1"是常量运算表达式。 
limitZeroAllow false 是否允许limit 0这样的语句

禁用对象检测配置
tableCheck true 检测是否使用了禁用的表 
schemaCheck true 检测是否使用了禁用的
Schema functionCheck true 检测是否使用了禁用的函数 
objectCheck true 检测是否使用了“禁用对对象” 
variantCheck true 检测是否使用了“禁用的变量” 
readOnlyTables 空 指定的表只读,不能够在SELECT INTO、DELETE、UPDATE、INSERT、MERGE中作为"被修改表"出现

---The end

阅读(10386) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~