ITPub博客

首页 > 数据库 > > 使用Node Group-作为存储子集群使用

使用Node Group-作为存储子集群使用

作者:GaussDB_数据库 时间:2020-01-14 15:16:40 0 删除 编辑

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

权限控制管理

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

    普通用户使用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. 管理员用户创建子集群和用户。
    create node group group1 with(dn_6001_6002, dn_6003_6004);
    create user user1 password 'Bigdata@123';
  2. 管理员将group1的create权限赋给user1。
    grant create on node group group1 to user1;
    此时user1有了group1的create权限。
  3. user1使用to group group1的方式创建表对象。
    set role user1 password 'Bigdata@123';
    create table tbl1(a int) to group group1;

    表对象创建成功。

     说明:

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

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

  1. 管理员用户创建子集群和用户。
    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';
  2. 分别将group1的create权限赋给user1,group2的create权限赋给user2。
    grant create on node group group1 to user1;
    grant create on node group group2 to user2;
  3. user1下创建tbl_1,user2下创建tbl_2。
    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设置。

  4. 将tbl_2的select权限赋给user1,将tbl_2所在的模式user2的usage权限赋给user1,将tbl_2所在的子集群group2的usage权限赋给user1。
    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;
  5. user1访问tbl_2。
    set role user1 password 'Bigdata@123';
    select * from user2.tbl_2;


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69959250/viewspace-3144061/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2020-01-06

  • 博文量
    2907
  • 访问量
    19342