暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

华为GaussDB A 作为存储子集群使用

墨天轮 2019-10-12
601

作为存储子集群使用

允许表的存储限定在一个特定的子集群内,从物理层面上切分、隔离不同的业务子系统在不同的子集群内,同时对不同的子集群进行权限控制管理。

权限控制管理

  • 用户在指定子集群下创建对象时的权限控制

    普通用户使用to group group1的方式创建表对象时,必须要有子集群group1的create权限。不指定to group创建对象时,则默认是default_storage_nodegroup指定的子集群,用户要有对default_storage_nodegroup指定的子集群的create权限。

    说明:

    用户在创建表对象时使用的子集群,均由管理员用户创建并且赋权给该用户。

  • 不同用户之间的对象访问权限管理

    普通用户user1下的表对象tbl_1和user2下的表对象tbl_2,如果user1要查询user2下的表对象tbl_2,首先需要user1具有tbl_2的select权限、tbl_2所在的模式的usage权限以及tbl_2所在子集群的usage权限。即在已有不同用户访问表对象的权限基础上增加了子集群的权限判断。

示例

示例一:用户在指定子集群下创建对象时的权限控制

  • 管理员用户创建子集群和用户。
    1
    2
    create node group group1 with(dn_6001_6002, dn_6003_6004);
    create user user1 password 'Bigdata@123';
    
  • 管理员将group1的create权限赋给user1。
    1
    grant create on node group group1 to user1;
    

    此时user1有了group1的create权限。

  • user1使用to group group1的方式创建表对象。
    1
    2
    set role user1 password 'Bigdata@123';
    create table tbl1(a int) to group group1;
    

    表对象创建成功。

    说明:

    如果报错提示权限不足导致建表失败,请检查expected_computing_nodegroup设置。

示例二:访问不同用户下的表对象的权限管理

  • 管理员用户创建子集群和用户。
    1
    2
    3
    4
    create node group group1 with (dn_6001_6002, dn_6003_6004);
    create node group group2 with (dn_6005_6006, dn_6007_6008);
    create user user1 password 'Bigdata@123';
    create user user2 password 'Bigdata@123';
    
  • 分别将group1的create权限赋给user1,group2的create权限赋给user2。
    1
    2
    grant create on node group group1 to user1;
    grant create on node group group2 to user2;
    
  • user1下创建tbl_1,user2下创建tbl_2。
    1
    2
    3
    4
    set role user1 password 'Bigdata@123';
    create table tbl_1(a int) to group group1;
    set role user2 password 'Bigdata@123';
    create table tbl_2(a int) to group group2;
    
    说明:

    如果报错提示权限不足导致建表失败,请检查expected_computing_nodegroup设置。

  • 将tbl_2的select权限赋给user1,将tbl_2所在的模式user2的usage权限赋给user1,将tbl_2所在的子集群group2的usage权限赋给user1。
    1
    2
    3
    4
    5
    6
    set role user2 password 'Bigdata@123';
    grant select on table tbl_2 to user1;
    grant usage on schema user2 to user1;
    reset role;
    --管理员用户
    grant usage on node group group2 to user1;
    
  • user1访问tbl_2。
    1
    2
    set role user1 password 'Bigdata@123';
    select * from user2.tbl_2;
    

查看更多:华为GaussDB 200 使用Node Group
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论