Mycat——安全设置

权限配置

1. user标签权限控制:

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

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

测试案例:
Mycat——安全设置_第1张图片
Mycat——安全设置_第2张图片
Mycat——安全设置_第3张图片

2. privileges标签权限控制:

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

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

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

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

配置说明:

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

测试案例:

Mycat——安全设置_第4张图片

Mycat——安全设置_第5张图片

SQL拦截

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

1. 白名单:

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

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


<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">falseproperty>
      blacklist>
firewall>
配置项 缺省值 描述
selectAllow true 是否允许执行SELECT语句
deleteAllow true 是否允许执行DELETE语句
updateAllow true 是否允许执行UPDATE语句
insertAllow true 是否允许执行INSERT语句
createTableAllow true 是否允许创建表
setAllow true 是否允许使用SET语句
alterTableAllow true 是否允许执行Alter Table语句
dropTableAllow true 是否允许修改表
commitAllow true 是否允许执行commit操作
rollbackAllow true 是否允许执行roll back操作

你可能感兴趣的:(MyCat)