数据库中间件---mycat--7、Mycat 安全设置

一 : 权限配置

1、 user 标签权限控制

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

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

结果: mycat 用户 能读能写 user 用户 只能读不能写

2、 privileges 标签权限控制

user 标签下的 privileges 标签可以对逻辑库(schema)表(table)进行精细化的 DML 权限控
制。
privileges 标签下的 check 属性,如为 true 开启权限检查,为 false 不开启,默认为 false。
由于 Mycat 一个用户的 schemas 属性可配置多个逻辑库(schema) ,所以 privileges 的下级节点 schema 节点同样可配置多个,对多库多表进行细粒度的 DML 权限控制。

  • 1、server.xml配置文件privileges部分 ,配置orders表没有增删改查权限
<user name="mycat">
	<property name="password">123456</property>
	<property name="schemas">TESTDB</property>
	<!-- 表级 DML 权限设置 -->
	<privileges check="true">
		<schema name="TESTDB" dml="1111" >
			<table name="orders" dml="0000"></table>
			<!--<table name="tb02" dml="1111"></table>-->
		</schema>
	</privileges>
</user>

配置说明

参数说明事例(禁止增删改查)
dmlinsert,update,select,delete0000

示例:

DML 权限增加(insert)更新(update)查询(select)删除(select)
0000XXXX
0010XXX
1110X
1111
  • 2、测试

二 : SQL 拦截

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

1、 白名单

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

i、 设置白名单

server.xml配置文件firewall标签 ,配置只有66.88.88.169 主机可以通过mycat用户访问

<firewall>
	<whitehost>
		<host host="66.88.88.169 " user="mycat"/>
	</whitehost>
</firewall>
ii 、重启mycat 测试

2、 黑名单

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

i、设置黑名单

server.xml配置文件firewall标签 , 配置禁止mycat用户进行删除操作

<firewall>
	<whitehost>
		<host host="192.168.140.128" user="mycat"/>
	</whitehost>
	<blacklist check="true">
		<property name="deleteAllow">false</property>
	</blacklist>
</firewall>
配置项缺省值描述
selelctAllowtrue是否允许执行 SELECT 语句
deleteAllowtrue是否允许执行 DELETE 语句
updateAllowtrue是否允许执行 UPDATE 语句
insertAllowtrue是否允许执行 INSERT 语句
createTableAllowtrue是否允许创建表
setAllowtrue是否允许使用 SET 语法
alterTableAllowtrue是否允许执行 Alter Table 语句
dropTableAllowtrue是否允许修改表
commitAllowtrue是否允许执行 commit 操作
rollbackAllowtrue是否允许执行 roll back 操作
ii 、重启mycat 测试
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值