全部产品
Search
文档中心

实时数仓Hologres:用户管理

更新时间:Mar 18, 2024

您可以使用Hologres管理控制台的用户管理模块,新增或删除用户,以及为用户授权。方便您以可视化方式更细致的管理实例内的用户。

购买实例的阿里云账号默认为当前实例的超级管理员Superuser,拥有实例的所有权限。在未添加其他用户之前,用户管理页面只显示当前阿里云账号的相关信息。用户管理界面显示项如下表所示。

显示项

描述

成员

当前实例中的用户名,包括阿里云账号、RAM用户和自定义账号。

云账号

当前实例中用户的阿里云账号ID。

示例如下:

  • 阿里云账号:11822780xxx

  • RAM用户:p4_269499383xxxx

  • 自定义账号:BASIC$xxx

账号类型

当前实例的用户的账号类型。

  • 阿里云账号 (ALIYUN)。

  • RAM账号 (RAM)。

  • BASIC账号 (BASIC)。

角色类型

当前实例的用户拥有的权限类型。

  • Superuser

  • Normal

操作

您可以单击目标成员操作列的删除,将该用户从实例内删除,删除后用户将没有实例的任何访问权限。

使用限制

自定义账号默认不能查询MaxCompute外表,如需查询,请配置USER MAPPING,具体配置方式请参见常见问题

新增用户

您可以在用户管理页面,使用可视化方式为实例新增用户。

  1. 用户管理页面选择目标实例名称,在页面右上角单击新增用户

  2. 新增用户对话框,选择添加当前阿里云账号下已有的RAM用户,并选择实例超级管理员(superuser)普通用户用户类型。新增用户

    说明
    • 如果当前阿里云账号没有RAM用户,您需要创建一个RAM用户,详情请参见RAM用户权限授权快速入门

    • Hologres支持使用阿里云账号和被设为实例超级管理员(Superuser)的RAM账号新增用户,其中RAM账号需要被授予AliyunRAMReadOnlyAccess权限,详情请参见授予RAM用户权限

    • 实例超级管理员(Superuser):拥有实例的所有权限,如果子账号被授予为Superuser,则无需再额外进行其他授权。

    • 普通用户:仅被创建至实例中,没有实例内任何对象(例如数据库、Schema和表等)的查看及操作权限,需要授予相应的权限,才可以查看或操作实例。

      推荐您前往DB管理页面,使用可视化方式进行授权。您也可以选择SQL语句授权,详情请参见RAM用户权限授权快速入门

删除用户

您可以在用户管理页面选择目标实例名称,在列表中单击目标成员操作列的删除,将该用户从实例内删除,删除后用户将没有实例的任何访问权限。

创建自定义用户

  • 控制台操作。

    您可以在用户管理页面,使用可视化方式为实例创建自定义用户。

    1. 用户管理页面选择目标实例名称,在页面右上角单击创建自定义用户

    2. 创建自定义用户对话框,配置如下参数。创建自定义用户

      参数

      说明

      自定义账号

      请自定义账号名称。最大长度为57个字符,由小写字母,数字和下划线组成。

      选择成员角色

      请选择用户类型。

      • 实例超级管理员(Superuser):拥有实例的所有权限,如果子账号被授予为Superuser,则无需再额外进行其他授权。

      • 普通用户:仅被创建至实例中,没有实例内任何对象(例如数据库、Schema和表等)的查看及操作权限,需要授予相应的权限,才可以查看或操作实例。

      密码

      请设置密码,密码需符合如下要求。

      • 由大写字母、小写字母、数字、特殊字符其中三种及以上组成。

      • 密码长度为8~32个字符。

      • 支持的特殊字符包含!@#$%^&*()_+-=

      确认密码

      请再次输入密码。

    3. 单击确认,完成创建自定义用户。

  • SQL方式操作。

    create user "BASIC$<user_name>" with password '<password>';

    user_name为自定义用户账号名称;password为自定义用户密码。

其他相关操作

  • 修改自定义用户密码。

    说明

    仅自定义用户支持修改密码,阿里云账号及RAM账号会自动生成AK/SK。

    如果您需要修改自定义用户密码,有如下两种方式:

    • 控制台操作。

      1. 用户管理页面的用户账号列表,单击目标自定义用户操作列的重置密码

      2. 重置密码对话框,输入新密码和确认新密码后,单击确认

    • SQL方式操作。

      alter user "BASIC$<user_name>" with password '<password>';

      user_name为自定义用户账号名称;password为自定义用户新密码。

  • 删除自定义用户。

    如果您需要删除自定义用户,有如下两种方式:

    • 控制台操作。

      1. 用户管理页面的用户账号列表,单击目标自定义用户操作列的删除

      2. 删除用户对话框,单击确认

    • SQL方式操作。

      drop user "BASIC$<user_name>";

      user_name为自定义用户账号名称。

常见问题

  • 问题现象

    自定义账号访问MaxCompute外部表时出现如下报错。

    ERROR:  Query:[xxxxxx] Build desc failed: failed to check permission: Authorization Failed [4002], You don't exist in project hologres_test. Context ID:xxxxxx-xxxx-xxxx-xxxx-xxxxxxx.    --->Tips: Pricipal:INVALID$BASIC$xxx; You don't exist in project xxx
  • 问题原因

    创建的自定义账号仅存在Hologres内部,所以默认情况下无法访问MaxCompute外部表。

  • 解决方法

    请在Hologres中创建User Mapping,即将一个自定义账号绑定至一个拥有MaxCompute对应项目和Hologres内部表数据权限的阿里云RAM账号。

    • 语法示例

      CREATE USER MAPPING
      FOR "<user_name>"
      SERVER odps_server
      OPTIONS
      (
          access_id '<Access_id>',
          access_key '<Access_key>'
      );
    • 参数说明

      参数

      说明

      user_name

      自定义账户的用户名。

      Access_id

      具有当前数据库登录权限账号的AccessKey ID。

      您可以单击AccessKey 管理,获取AccessKey ID。

      Access_key

      具有当前数据库登录权限账号的AccessKey Secret。

      您可以单击AccessKey 管理,获取AccessKey Secret。

    • 使用示例

      --为用户BASIC$test创建USER MAPPING
      CREATE USER MAPPING
      FOR "BASIC$test"
      SERVER odps_server
      OPTIONS (
        access_id 'LTxxxxxxxxxx',
        access_key 'y8xxxxxxxxxxxxx');
      
      --为当前用户创建USER MAPPING
      CREATE USER MAPPING
      FOR CURRENT_USER
      SERVER odps_server
      OPTIONS (
        access_id 'LTxxxxxxxxxx',
        access_key 'y8xxxxxxxxxxxxx');