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

华为GaussDB A 用户层级管理

墨天轮 2019-10-12
848

用户层级管理

背景信息

GaussDB 200通过创建用户来使用数据库系统和执行业务。

多租户引入两级用户机制,分别是组用户和业务用户。两级用户分别关联不同的资源池和存储空间,实现多租户下资源分组管理。

表1 各类用户的特点

用户分类

说明

组用户(多租户场景)

关联组资源池,不作为执行作业的用户使用。

说明:

组用户不建议关联作业,如果一定要关联作业,那么使用默认的负载组‘class:Medium’

业务用户(多租户场景)

为实际执行作业的用户,关联业务资源池。

普通用户(普通场景)

为系统的普通用户,在多租户场景下可以将系统中已经存在的用户转换为组用户或者业务用户。

前提条件

已熟悉CREATE USER、ALTER USER和DROP USER语法的使用。

操作步骤

创建用户

  • 使用gsql连接数据库。
  • 创建组用户关联到组资源池。例如下面:名称为“tenant_a”的组用户关联到了“resource_pool_a”组资源池。

    1
    2
    CREATE USER tenant_a RESOURCE POOL 'resource_pool_a' PASSWORD 'Gauss_234';
    CREATE USER tenant_b RESOURCE POOL 'resource_pool_b' PASSWORD 'Gauss_234';
    
    CREATE ROLE

  • 创建业务用户关联到业务资源池和组用户。例如下面:名称为“tenant_a1”的业务用户关联到了“resource_pool_a1”组资源池和“tenant_a”组用户。

    1
    2
    3
    4
    CREATE USER tenant_a1 RESOURCE POOL 'resource_pool_a1' USER GROUP 'tenant_a' PASSWORD 'Gauss_234';
    CREATE USER tenant_a2 RESOURCE POOL 'resource_pool_a2' USER GROUP 'tenant_a' PASSWORD 'Gauss_234';
    CREATE USER tenant_b1 RESOURCE POOL 'resource_pool_b1' USER GROUP 'tenant_b' PASSWORD 'Gauss_234';
    CREATE USER tenant_b2 RESOURCE POOL 'resource_pool_b2' USER GROUP 'tenant_b' PASSWORD 'Gauss_234';
    
    CREATE ROLE

    创建业务用户时,resource pool和user group为必选字段,缺一不可。

管理用户

说明:

拥有sysadmin权限的用户不能作组用户或者业务用户。

  • 切换业务用户“tenant_a1”使用普通资源池respool3(假设系统中已经存在普通资源池respool3)
    1
    ALTER USER tenant_a1 RESOURCE POOL 'respool3' USER GROUP DEFAUlT;
    
    ALTER ROLE

    普通用户,组用户,业务用户都可以切换资源池,需要注意以下事项:

    • 切换业务用户使用普通资源池或使用组资源池时,user group default为必选字段。
    • 系统中任何用户在切换使用业务资源池时,必须同时指定其归属的组用户(user group字段),且组用户使用的资源池一定要与业务资源池满足上下级关系。
  • 切换不含业务用户的组用户使用普通资源池respool3(假设系统中已经存在不含业务的组用户userparent和普通资源池respool3)
    1
    2
    ALTER USER userparent RESOURCE POOL 'respool3';
    ALTER ROLE
    

    组用户含有业务用户时无法做任何切换。

  • 切换普通用户userparent使用组资源池resource_pool_a(假设系统中已经存在普通用户userparent)。
    1
    2
    ALTER USER userparent RESOURCE POOL 'resource_pool_a';
    ALTER ROLE
    
  • 切换userchild为userparent的业务用户(假设系统中已经存在普通用户userchild,且按照上一步完成userparent使用组资源池resource_pool_a的配置)。
    1
    2
    ALTER USER userchild RESOURCE POOL 'resource_pool_a1' USER GROUP 'userparent';
    ALTER ROLE
    

查看用户绑定的资源池信息

查看某一用户所绑定的资源池。
1
2
3
4
5
SELECT rolrespool FROM PG_AUTHID WHERE rolname = 'rolename';
  rolrespool  
--------------
 default_pool
(1 row)

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

评论