本文为您介绍主账号如何使用简单权限模型和专家权限模型,授予RAM用户实例的开发权限。

背景信息

系统默认设置购买实例的主账号为超级管理员Superuser。Superuser拥有该实例的所有权限,例如创建数据库、删除数据库、创建角色以及为角色授权等。

RAM用户的权限说明如下:
  • RAM用户需要被主账号授权后才能访问实例。RAM用户也可以被授权为Superuser。
  • 即使RAM用户拥有实例的购买权限,也必须经过主账号授予实例的开发权限后,才能在Hologres实例中进行数据开发。

RAM权限与实例的开发权限的权限控制不同,详情请参见授予RAM用户权限

使用简单权限模型为RAM用户授权(推荐)

您可以在Hologres管理控制台使用可视化方式为RAM用户授权。具体操作如下:

  1. 新建用户。
    1. 使用主账号登录阿里云官网
    2. 登录Hologres管理控制台,单击目标实例名称,进入实例详情页。
    3. 在实例详情页的左侧导航栏,单击账号管理,默认进入用户管理页面。
    4. 用户管理页面,单击右上角新增用户
    5. 配置新增用户弹框的各项参数。新增用户
      参数描述
      选择组织成员选择需要授权的RAM用户,将其创建至实例中。
      用户类型
      • 实例超级管理员(Superuser):拥有实例内所有操作的权限。
      • 普通用户:默认无实例的操作权限。

        您需要授予RAM用户具体的操作权限后,RAM用户才能连接Hologres实例并使用。

    6. 单击确认
  2. 可选:为用户授权。
    如果新增的用户是普通用户,则需要执行该步骤。具体操作如下:
    1. 用户管理页面,单击左侧导航栏DB授权DB授权
      如果DB管理页面没有数据库,您需要执行如下操作:
      1. 单击新增数据库
      2. 配置实例名称,输入数据库名称,并选择简单权限策略SPM
    2. 进入DB授权页面,单击操作列的用户授权 > 新增授权
    3. 配置新增授权的各项参数。新增授权
      参数描述
      用户需要授权的RAM用户。
      用户组
      • Admin:可以访问或操作数据库的所有对象,以及管理数据库的用户组。
      • Developer:可以使用DDL语句创建、删除或修改数据库的对象,以及读写数据库对象中的数据。
      • Writer:读写数据库对象中的数据。
      • Viewer:拥有所有数据库对象的只读权限。
    4. 单击确认
    简单权限模型也支持使用SQL语句为RAM用户授权,详情请参见简单权限模型的使用

使用专家权限模型为RAM用户授权

使用专家权限模型为RAM用户授权的操作步骤如下:

  1. 新建用户。
    创建RAM用户至Hologres实例。示例语句如下。
    CREATE USER "p4_账号ID"; //ID为阿里云RAM用户的UID。
    CREATE USER "p4_账号ID" SUPERUSER; //授予RAM用户Superuser权限。
  2. 为用户授权。
    RAM用户需要被授予相应的权限后,才能访问权限范围内的对象。示例授权语句如下。
    GRANT SELECT ON TABLE TABLENAME TO "账号ID"; //授予RAM用户表的查看权限。
    GRANT SELECT,INSERT,UPDATE ON ALL TABLES IN SCHEMA PUBLIC TO "p4_账号ID"; //授予RAM用户所有表的新增、修改和查看权限。
    说明 只有Superuser和表Owner才可以删除表。
    专家权限模型的更多授权操作请参见专家权限模型

RAM用户使用Hologres

完成授权的RAM用户可以在Psql客户端连接Hologres实例并使用。详情请参见PSQL客户端

示例语句如下。
PGUSER=<AccessID> PGPASSWORD=<AccessKey> psql -p <Port> -h <Endpoint> -d <Database>

查看RAM用户的权限

您可以通过如下方式查看RAM用户的权限:
  • 使用管理控制台查看RAM用户的权限。
    1. 进入Hologres管理控制台的实例详情页。
    2. 在实例详情页左侧导航栏,单击用户管理
    3. 查看RAM用户的权限。

    如果您的数据库已经开启简单权限模型,您可以在DB管理页面,单击目标数据库的用户授权,查看RAM用户已加入的用户组。

  • 使用SQL语句查看RAM用户的权限。
    连接开发工具至Hologres实例后,您可以使用如下SQL语句查看RAM用户的权限。
    SELECT * FROM pg_roles WHERE rolname = 'p4_ID'; //查看某个成员拥有的角色。
    SELECT rolname FROM pg_roles;
    SELECT user_display_name(rolname) FROM pg_roles;