阿里云主账号购买交互式分析(Hologres)实例成功后,主账号将会成为该实例的超级管理员(即superuser),superuser拥有整个实例的所有权限,其他用户访问该实例需要superuser授权。本小节将会为您介绍在交互式分析中主账号如何管理(包括创建、授权等)子账号。

说明 只支持阿里云主账号购买交互式分析(Hologres)实例

新建子账号

若您已有子账号,可直接跳过该步骤,前往授权子账号进行账号授权即可。

若您无子账号,需要先在阿里云官网新增一个子账号:
  1. 需要superuser登录阿里云官网,选择产品分类 > 安全 > 访问控制 > 管控台,进入RAM管理控制台,单击用户 > 新建用户,进行RAM子账号创建。
  2. 填写用户信息:登录名称显示名称等,可为子账号设置登录密码。单击确定即可完成子账号创建。
  3. 创建RAM子账号成功后,单击RAM账号,即可看到当前账号的UID,请记住该UID,授权时需要用到。
  4. 页面下拉前往认证管理进行AccessKey账号创建。单击创建新的AccessKey,即可生成当前账号的Access ID和Access Key,请妥善保存该Access ID和Access key,连接交互式分析时需要使用。

    完成以上操作步骤,说明您已成功创建子账号,可对子账号进行授权操作。

授权子账号

当前版本的交互式分析将会采用两套权限体系来为用户提供更加方便且完善的授权体系:

  • 专家模式:交互式分析兼容PostgreSQL,使用与Postgres完全一致的授权体系(简称为专家模式),您可以按照标准的PostgreSQL授权语句来为子账号进行授权,详情请参见专家模式授权
  • 简单模式:交互式分析在PostgresSQL基础上,为提升用户体验抽象出来的一种粗粒度的简单权限模型(Simple Permission Model,SPM),您可以通过将用户加入用户组的方式来完成授权,详情请参见简单权限模型的使用
  1. 简单权限模型授权(推荐)

    若您需要使用简单权限模型为子账号授权,可以直接在Hologres管控台使用可视化的操作来完成。具体操作步骤如下:

    1. 新建用户

      进入Hologres管控台,在实例详情页单击左侧菜单栏用户管理 > 新增用户,选择需要授权的子账号,将子账号创建进实例中。可以直接将子账号授权成superuser(无需额外授权即可拥有实例的所有权限),也可以将子账号授权为普通用户(还需要额外授权才能正常使用交互式分析)。

      699
      说明 superuser拥有整个实例的权限,请小心授予。
    2. 授权用户

      新增用户完成之后,若子账号是普通用户,还需要再授予权限,子账号才能使用交互式分析。单击左侧菜单栏DB管理,将子账号加入到对应的用户组来完成授权。

      700

      简单权限模型也支持以SQL方式来为子账号授权,关于详细的使用操作可以参见简单权限模型的使用

  2. 专家模式授权

    若你需要使用专家模式为子账号授权,操作步骤如下:

    1. 将子账号创建进交互式分析中
      create user "云账号id/云邮箱";//若是子账号,还需要在云账号id前加"p4_",即"p4_id";
      create user "云账号id/云邮箱" superuser ;//创建子账号并赋予子账号为superuser;
      说明
      • surperuser拥有对整个实例的权限,请小心授予。
      • 若是子账号,还需要在id前加“p4_“,为“p4_id“,且p为小写字母,并如示例加上双引号。
    2. 授权子账号
      成功将子账号创建进交互式分析实例后,需要给子账号授予一定的权限,子账号才能访问权限内的对象(若是已经被授权成superuser则不需要再额外授权),示例授权如下:
      grant select on table tablename to "云账号id/云邮箱";//授予子账号某个表的查看权限
      grant select,insert,update on all tables in schema public to "云账号id/云邮箱";// 授权子账号全部表的增改查权限
      说明 : 子账号不能删除不是自己建的表。

      在交互式分析中,专家模式(标准的PostgreSQL授权)权限划分非常细致,具体可以参见专家模式授权

子账号使用交互式分析

superuser授权子账号完成后,子账号可以直接使用以下连接串在psql客户端连接交互式分析并使用。详情可以参见连接交互式分析

PGUSER=accessID PGPASSWORD=accessKey psql -p <port> -h <endpoint> -d <databasename>

查看权限

您可以使用以下两种方式来查看用户所拥有的权限:

  1. 管控台查看权限

    您可以在Hologres管控台实例详情页的用户管理查看子账号的是superuser权限还是normal权限。

    701

    同时若您的DB已经开启简单权限模型,您可以在DB管理 > 用户授权页面查看子账号被加入的用户组。

    702
  2. SQL查看权限
    交互式分析实例连接开发工具后,您可以使用SQL来查看账号权限,命令如下。
    select * from pg_roles where rolname = '云账号id';//若是子账号,还需要在id前加p4,为"p4_id";
    select rolname from pg_roles;
    select user_display_name(rolname) from pg_roles;

撤销授权

若因为某种原因,您需要对已授权的子账号进行权限撤销(账号仍然在交互式分析中),分以下两种情况:

  1. 简单权限模型

    若您当前DB开启了简单权限模型,需要对子账号进行撤销授权,可以直接在Hologres管控台进行可视化撤销授权。

    在实例详情页单击DB管理 > 用户授权,选择对应的子账号并单击撤销授权即可。

    703

    关于撤销权限后子账号拥有的权限,可以前往简单权限模型的使用查看。

  2. 专家模式

    若您的DB使用的是专家模式授权,想要撤销子账号权限,可以使用以下命令语句:

    REVOKE SELECT ON TABLE TABLENAME FROM "云账号ID/云邮箱" ;//若是子账号,云账号ID前需要加"p4_",即"p4_uid"

    更多详情可以参见专家模式授权

删除子账号

若因某种原因,您需要将子账号从实例中删除(子账号将没有实例的任何权限),您可以按照以下两种方式操作:

  1. 管控台可视化删除

    Hologres管控台支持一键可视化删除子账号,在实例详情页单击左侧用户管理,选择需要删除的子账号,单击删除即可。

    704
  2. SQL删除
    若您的实例已经连接开发工具,您也可以使用SQL语句进行删除子账号,命令如下:
    drop user "云账号id/云邮箱";//若是子账号,还需要在云账号id前加p4,为"p4_id";