您可以使用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. 单击确认,完成创建自定义用户。

常见问题

  • 问题现象
    自定义账号访问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外部表。

  • 解决方法
    请创建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');