12、Mycat实战:高可用及权限配置

文章目录

  • 15.高可用
  • 16.Mycat权限配置
      1. user标签权限控制
    1. privileges标签权限控制

15.高可用

mycat可以实现mysql的高可用,那么mycat本身有时也需要提供高可用策略,可以采用HAProxy、keeplived等软件进行实现。

  • HAProxy
  • Keepalived

具体实现可以参考CSDN文章(基于Docker容器):

https://blog.csdn.net/weixin_32822759/article/details/106590268

16.Mycat权限配置

server.xml 几乎保存了所有 mycat 需要的系统配置信息。其在代码内直接的映射类为 SystemConfig 类。

1. user标签权限控制

目前Mycat 对于中间件的连接控制并没有做太复杂的控制,目前只做了中间件逻辑库级别的读

写权限控制。是通过 server.xml 的 user 标签进行配置。

<user name="mycat">
	<property name="password">mycat</property>
	<property name="schemas">TESTDB</property>
	<property name="readOnly">true</property>
</user>
<user name="mycat2">
	<property name="password">mycat</property>
	<property name="schemas">order</property>
</user>

配置说明:

配置中name 是应用连接中间件逻辑库的用户名。

mycat 中 password 是应用连接中间件逻辑库的密码。

TESTDB是应用当前连接的逻辑库中所对应的逻辑表。schemas 中可以配置一个或多个。

true 中 readOnly 是应用连接中间件逻辑库所具有的权限。true 为只读,false 为读写都有,默认为 false

2. privileges标签权限控制

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

制。

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

由于Mycat 一个用户的 schemas 属性可配置多个逻辑库(schema) ,所以 privileges 的下级

节点schema 节点同样可配置多个,对多库多表进行细粒度的 DML 权限控制。

Schema/Table 上的 dml 属性描述

注:设置了 schema , 但只设置了个别 table 或 未设置 table 的 DML,自动继承 schema 的 DML 属性

privileges 配置事例如下:

<user name="zhuam">
	<property name="password">111111</property>
	<property name="schemas">TESTDB,TESTDB1</property>
	<!-- 表级权限: Table 级的 dml(curd)控制,未设置的 Table 继承 schema 的 dml -->
	<!-- TODO: 非 CURD SQL 语句, 透明传递至后端 -->
	<privileges check="true">
		<schema name="TESTDB" dml="0110" >
			<table name="table01" dml="0111"></table>
			<table name="table02" dml="1111"></table>
		</schema>
		<schema name="TESTDB1" dml="0110">
			<table name="table03" dml="1110"></table>
			<table name="table04" dml="1010"></table>
		</schema>
	</privileges>
</user>

关注“指尖架构师”公众号,获取更多资讯
**

版权声明:本文不是「本站」原创文章,版权归原作者所有 | 原文地址: