博客文章除注明转载外,均为原创。转载请注明出处。

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

mycat管理mysql_Mycat用户和权限控制管理相关推荐

  1. SSM项目图书馆管理系统,适合新人练手和毕设参考,功能首页展示 系统注册登录登出 用户管理 权限控制管理 书籍管理 图书借阅管理 个人借阅记录管理 书籍详细信息展示等

    图书馆管理系统,系统采用B/S架构 系统采用框架:java+maven+stringboot+mybatis+mysql-plus+boostart(前端界面) 首页展示 内容后台管理 菜单权限管理 ...

  2. ABP开发框架前后端开发系列---(9)ABP框架的权限控制管理

    在前面两篇随笔<ABP开发框架前后端开发系列---(7)系统审计日志和登录日志的管理>和<ABP开发框架前后端开发系列---(8)ABP框架之Winform界面的开发过程>开始 ...

  3. java 权限管理与用户角色权限设计

    实现业务系统中的用户权限管理 B/S系统中的权限比C/S中的更显的重要,C/S系统因为具有特殊的客户端,所以访问用户的权限检测可以通过客户端实现或通过客户端+服务器检测实现,而B/S中,浏览器是每一台 ...

  4. java用户角色权限管理 只显示姓_java权限管理与用户角色权限设计

    实现业务系统中的用户权限管理 B/S系统中的权限比C/S中的更显的重要,C/S系统因为具有特殊的客户端,所以访问用户的权限检测可以通过客户端实现或通过客户端+服务器检测实现,而B/S中,浏览器是每一台 ...

  5. mac你没有权限打开应用程序_如何管理Mac的隐私权限控制

    在使用MAC电脑清理软件的时候,经常会出现需要权限问题,在没有权限的情况下,我们不能对一些文件进行更改和删除,那么该如何管理Mac的隐私权限控制呢?下面的文章就来告诉大家该如何设置隐身权限问题. 第一 ...

  6. Kafka SASL/SCRAM+ACL实现动态创建用户及权限控制

    文章目录 SASL_SCRAM+ACL实现动态创建用户及权限控制 使用SASL / SCRAM进行身份验证 1. 创建SCRAM Credentials 创建broker建通信用户(或称超级用户) 创 ...

  7. linux根-文件系统-目录管理-文件管理-用户及权限详解-用户组-用户管理-权限管理...

    一 .Linux文件结构 文件结构是文件存放在磁盘等存贮设备上的组织方法.主要体现在对文件和目录的组织上. 目录提供了管理文件的一个方便而有效的途径. Linux使用标准的目录结构,在安装的时候,安装 ...

  8. mysql-front权限管理_mysql 用户及权限管理 小结

    MySQL 默认有个root用户,但是这个用户权限太大,一般只在管理数据库时候才用.如果在项目中要连接 MySQL 数据库,则建议新建一个权限较小的用户来连接. 在 MySQL 命令行模式下输入如下命 ...

  9. linux的用户及权限管理,Linux 用户及权限管理.doc

    ? ? ? ? ? ? ? ? Linux 用户及权限管理 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Linux 是一个多用户的操作系统,引入用户,可 ...

  10. 【Linux系统管理】07 软件包管理 08 用户和权限

    一 软件包分类 Linux 系统和 Windows 系统之间的软件包是分开的.Windows 系统中的 .exe,.msi 是无法在Linux系统下运行.Linux 系统中的服务器应用是无法在 Win ...

最新文章

  1. hplus java,hplus
  2. Codeforces 1025D(区间dp)
  3. 【Java 网络编程】NIO Buffer 简介 ( 概念 | 数据传输 | 标记 | 位置 | 限制 | 容量 | 标记 | 重置 | 清除 | 翻转 | 重绕 | 链式操作 )
  4. 世界机器人大会进入最后一天,最受市民关注的是它!
  5. 理解 __doPostBack(转)
  6. declspec(dllexport)与_declspec(dllimport) 异同
  7. spring学习(34):构造函数依赖注入
  8. 《Windows Server 2012活动目录管理实践》 目录15-28章
  9. php中文分词类 关键词提取,php如何使用PHPAnalysis提取关键字中文分词
  10. iOS 一个方法首次安装滚播图 展示应用简介
  11. Armadillo Hardware ID Patcher v1.2
  12. redis安装及运行
  13. 判断App位于前台或者后台的6种方法
  14. VTCP QIO技术解析
  15. Square, Inc.公布收购Afterpay的计划,将加强并促进卖家与Cash App生态系统之间的进一步融合
  16. 安卓系统Remix_OS 的vmware虚拟机安装
  17. Elasticsearch Nested类型
  18. 需求分析——需求分析的步骤
  19. 简单的言语介绍一下什么是程序员
  20. 模拟器上下载Fiddler证书

热门文章

  1. oracle 10g for solaris准备工作和实例的删除
  2. 2022 SpringBoot/SSM的药品售货机平台 H5药品购买商城
  3. java代码调用python导致系统重启_从Java调用Python代码时出现问题(不使用jython)...
  4. cpu性能参数如何看?
  5. echarts切换飞线图未清空_讯飞iFLYOS成就产品快速落地 智能硬件迈入直道竞速赛...
  6. andpods授权码订单号分享_Axure 9.0学生免费授权申请详细步骤
  7. docker运行jenkins挂掉_docker搭建jenkins
  8. Pytorch之模型加载/保存
  9. python遗传算法最短路径问题有几种类型_用遗传算法求解最短路径问题.pdf
  10. 大教堂与集市 The Cathedral The Bazaar -- 这是当代软件技术领域最重要的著作