MyCat访问权限配置

user 标签:
       这个标签主要用于定义登录 mycat 的用户和权限。

1<user name="test"> 2 <property name="password">test</property> 3 <property name="schemas">TESTDB</property> 4 <property name="readOnly">true</property> 5 <property name="benchmark">11111</property> 6 <property name="usingDecrypt">1</property> 7 <privileges check="false"> 8 <schema name="TESTDB" dml="0010" showTables="custome/mysql"> 9 <table name="tbl_user" dml="0110"></table> 10 <table name="tbl_dynamic" dml="1111"></table> 11 </schema> 12 </privileges> 13</user>

例如上面的例子中,我定义了一个用户:
        用户名为 test
        密码也为 test
        可访问的 schema 也只有 TESTDB 一个。

       如果我在 schema.xml 中定义有多个 schema,这里这个用户是无法访问其他的 schema的。在 mysql 客户端看来则是无法使用 use 切换到这个其他的数据库。如果使用了 use 命令,则 mycat 会报出这样的错误提示:

ERROR 1044 (HY000): Access denied for user 'test' to database 'xxx'

property 标签:
      用于具体声明的属性值。

password属性:
         声明密码

readOnly属性:
        声明限制用户是否只是可读; 为 true 或 false 

schemas属性:
        声明用户可访问的 schema;修改 schemas 内的文本来控制用户可访问的 schema,同时访问多个 schema 的话使用","隔开

<property name="schemas">TESTDB,db1,db2</property>

Benchmark属性:
       声明该用户最大连接数;当前端的整体 connection 数达到(benchmark)基准值时,对来自该账户的请求开始拒绝连接,0 或不设表示不限制

<property name="benchmark">1000</property>

usingDecrypt属性:
       声明是否对密码加密默认 0 否 如需要开启配置 1,同时使用加密程序对密码加密,
加密命令为:
执行 mycat jar 程序:

java -cp Mycat-server-1.4.1-dev.jar org.opencloudb.util.DecryptUtil 0:user:password

Mycat-server-1.4.1-dev.jar 为 mycat download 下载目录的 jar
1:host:user:password 中 0 为前端加密标志

privileges 子节点
       对用户的 schema 及 下级的 table 进行精细化的 DML 权限控制,privileges 节点中的 check 属性是用于标识是否开启 DML 权限检查, 默认 false 标识不检查,当然 privileges 节点不配置,等同 check=false;
      由于 Mycat 一个用户的 schemas 属性可配置多个 schema ,所以 privileges 的下级节点 schema 节点同样可配置多个,对多库多表进行细粒度的 DML 权限控制。

1<user name="zhuam"> 2 <property name="password">111111</property> 3 <property name="schemas">TESTDB,TESTDB1</property> 4 <!-- 表级权限: Table 级的 dml(curd)控制,未设置的 Table 继承 schema 的 dml --> 5 <!-- TODO:CURD SQL 语句, 透明传递至后端 --> 6 <privileges check="true"> 7 <schema name="TESTDB" dml="0110" > 8 <table name="table01" dml="0111"></table> 9 <table name="table02" dml="1111"></table> 10 </schema> 11 <schema name="TESTDB1" dml="0110"> 12 <table name="table03" dml="1110"></table> 13 <table name="table04" dml="1010"></table> 14 </schema> 15 </privileges> 16</user>
点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )