MyCat访问权限配置

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

<user name="test">
   <property name="password">test</property>
   <property name="schemas">TESTDB</property>
   <property name="readOnly">true</property>
   <property name="benchmark">11111</property>
   <property name="usingDecrypt">1</property>
   <privileges check="false">
      <schema name="TESTDB" dml="0010" showTables="custome/mysql">
         <table name="tbl_user" dml="0110"></table>
         <table name="tbl_dynamic" dml="1111"></table>
      </schema>
   </privileges>
</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 权限控制。
63cb8e62154c1ba41d6599c2cb40699d1e7.jpg

<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>

 

转载于:https://my.oschina.net/u/3420885/blog/1942353

已标记关键词 清除标记
表情包
插入表情
评论将由博主筛选后显示,对所有人可见 | 还能输入1000个字符 “速评一下”
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页