Mycat——安全设置

权限配置

1. user标签权限控制:

目前Mycat对于中间件的连接控制并没有做太负责的控制,目前只做了中间件逻辑库级别的读写权限,是通过server.xml的user标签进行配置。

<user name="mycat">
		<property name="password">123456</property>
		<property name="schemas">TESTDB</property>
</user>
<user name="user">
		<property name="password">123456</property>
		<property name="schemas">TESTDB</property>
	   <property name="readOnly">true</property>
</user>
标签属性说明
name应用连接中间件逻辑库的用户名
password该用户对应的密码
TESTDB应用当前连接的逻辑库中所对应的逻辑表。schemas中可以配置一个或多个
readOnly应用连接中间逻辑库所具有的权限。true为只读,false为读写都有,默认为false

测试案例:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2. privileges标签权限控制:

在user标签下的privileges标签可以对逻辑库(schema)、表(table)进行精细化的DML权限控制。

privileges标签下的check属性,如true开启权限检查,为false不开启,默认为false。

由于Mycat一个用户的schemas属性可配置多个逻辑库,所以privileges的下级节点schema节点可配置多个,对多库多表进行细粒度的DML权限控制。

#配置orders表没有增删改查权限
<user name="mycat">
		<property name="password">123456</property>
		<property name="schemas">TESTDB</property>
		<!-- 表级 DML 权限设置 -->
		<privileges check="false">
			<schema name="TESTDB" dml="1111" >
				<table name="orders" dml="0000"></table>
				<!-- <table name="tb02" dml="1111"></table> -->
			</schema>
		</privileges>		
	</user>

配置说明:

DML权限增加(insert)更新(update)查询(select)删除(delete)
0000禁止禁止禁止禁止
0010禁止禁止可以禁止
1110可以禁止禁止禁止
1111可以可以可以可以

测试案例:

在这里插入图片描述

在这里插入图片描述

SQL拦截

firewall标签用来定义防火墙:firewall下whitehost标签用来定义IP白名单,blacklist用来定义SQL黑名单。

1. 白名单:

可以通过设置白名单,实现某主机某用户可以访问Mycat,而其他主机用户禁止访问。

配置只有192.168.140.128主机可以通过mycat用户访问:

<!-- 全局SQL防火墙设置,设置白名单 -->
<firewall> 
   <whitehost>
      <host host="192.168.140.128" user="mycat"/>
   </whitehost>
</firewall>

2. 黑名单:
可以通过设置黑名单,实现Mycat对具体SQL操作的拦截,如增删改查操作的拦截。

配置禁止myca用户进行删除操作:

<firewall> 
	 <whitehost>
      	<host host="192.168.140.128" user="mycat"/>
      </whitehost>
      <blacklist check="true">
      	<property name="deleteAllow">false</property>
      </blacklist>
</firewall>
配置项缺省值描述
selectAllowtrue是否允许执行SELECT语句
deleteAllowtrue是否允许执行DELETE语句
updateAllowtrue是否允许执行UPDATE语句
insertAllowtrue是否允许执行INSERT语句
createTableAllowtrue是否允许创建表
setAllowtrue是否允许使用SET语句
alterTableAllowtrue是否允许执行Alter Table语句
dropTableAllowtrue是否允许修改表
commitAllowtrue是否允许执行commit操作
rollbackAllowtrue是否允许执行roll back操作
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值