原创

mycat的安全管理

1、user标签权限控制
目前mycat对于中间件的连接控制并没有做太复杂的控制,目前只做了中间件逻辑库级别的读写控制权限,可以通过user标签进行配置。

标签说明:

| 标签属性 | 说明                                                                                                                          |
| ------------ | ----------------------------------------------------------------------------------------------------------- |
|   name   | 应用链接中间件逻辑库的用户名                                                                                     |
| password | 该用户对应的密码                                                                                                    |
| schemas | 应用当前连接的逻辑库中所对应的逻辑表,schemas中可以配置一个或者多个       |
| readonly | 应用连接中间件逻辑库所具有的权限。true为只读,false为读写都有,默认是false |

添加配置:

<user name="root" defaultAccount="true">
<property name="password">123456</property>
<property name="schemas">TESTDB</property>
</user>
<user name="mycat">
<property name="password">mycat</property>
<property name="schemas">TESTDB</property>
<property name="readOnly">true</property>
</user>

尝试通过不同的用户名称进行登录,会发现root用户具有所有的权限,但是mycat用户只是具备了查询的权限,无法完成更新和插入的操作。

2、privileges标签权限控制
在user标签下的privileges标签可以对逻辑库,表进行更加细致的DML权限控制。
privileges标签下的check属性,如果值为true则表示开启权限检查,false则表示不开启权限检查

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

配置权限:
| DML权限 | 增加 | 更新 | 查询 | 删除 |
| ------------ | -------| ------ | ------ | ------ |
|   0001     | 禁止  | 禁止 | 禁止 | 允许 |
|   0010     | 禁止  | 禁止 | 允许 | 禁止 |
|   0100     | 禁止  | 允许 | 禁止 | 禁止 |
|   1000     | 允许  | 禁止 | 禁止 | 禁止 |


修改server.xml文件

<user name="mycat">
<property name="password">mycat</property>
<property name="schemas">TESTDB</property>
<privileges check="true">
<schema name="TESTDB" dml="1111">
<table name="orders" dml="0000"></table>
</schema>
</privileges>
</user>

大家可以进行相关的测试,当使用mycat用户进行登录的时候会发现其他的表都可以做增删改查操作,但是orders表什么操作都做不了,这就是对权限作了控制。

本文链接地址:http://www.ysxbohui.com/article/55

正文到此结束