本小节将会介绍交互式分析(Interactive Analytics)角色管理的操作命令。

创建用户

要在交互式分析(Interactive Analytics)中创建一个用户,可使用以下两个SQL命令之一。
CREATE ROLE name;--不可登录
CREATE USER name;

name遵循SQL标识符的规则:不包含特殊字符,或包含特殊字符但用双引号包围,例如“ALIYUN$xx”

supperuser可以为用户创建角色,并且在创建角色的同时可以赋予一定的角色权限,例如LOGIN。

相关角色权限语法如下。
CREATE ROLE role_name [ [ WITH ] option [ ... ] ]

where option can be:

      SUPERUSER | NOSUPERUSER
    | CREATEDB | NOCREATEDB
    | CREATEROLE | NOCREATEROLE
    | INHERIT | NOINHERIT
    | LOGIN | NOLOGIN
    | REPLICATION | NOREPLICATION
    | BYPASSRLS | NOBYPASSRLS
    | CONNECTION LIMIT connlimit
    | IN ROLE role_name [, ...]
    | IN GROUP role_name [, ...]
    | ROLE role_name [, ...]
    | ADMIN role_name [, ...]
    | USER role_name [, ...]
    | SYSID uid
示例如下
-- 创建一个可登录的角色,但不设置密码
CREATE USER "RAM$root@example.com:subuser1";

-- 创建一个可以管理数据库、管理其他角色的不可登录角色
CREATE ROLE admin WITH CREATEDB CREATEROLE;
说明
  • 当前版本暂不支持为角色自定义密码,只支持角色的阿里云账号的AccessKey作为密码。
  • CREATE USERCREATE ROLE的区别在于CREATE USR含有LOGIN功能。详细的账号规范可参加阿里云账号认证

更多关于创建角色的细节,可参见PostgreSQL

删除角色

想要删除一个角色,可以使用DROP命令,示例如下。
DROP ROLE name;
说明 :执行DROP命令后,任何在该组角色中的成员关系会被自动撤销(但是成员角色不会受到影响)。

授权角色

在交互式分析(Interactive Analytics)中,对某个角色授权可以参见以下表格。
权限 语法 必须
创建可登录子账号 create user "xx@aliyun.com";create user "ALIYUN$xx";
赋予所有子账号对于交互式分析模式下的所有表访问权限 GRANT USAGE ON SCHEMA hologres TO PUBLIC; 默认已执行
赋予子账号交互式分析属性表的查增改权限,确保能够访问表属性和建表 GRANT SELECT,INSERT,UPDATE ON table hologres.holo_table_properties TO PUBLIC; 默认已执行
赋予所有子账号对模式public下的所有普通表进行查增改的权限 GRANT SELECT,INSERT,UPDATE ON ALL TABLES IN SCHEMA public to PUBLIC; 可选
授予子账号superuser的权限 create user "p4_账号id" SUPERUSER ; 可选
给大批量用户统一授予权限 GRANT SELECT,INSERT,UPDATE ON ALL TABLES IN SCHEMA public TO public; // 用户表的增删改查 可选

更多关于权限的授予请参见:GRANT

撤销授权

若想撤销子账号的某一个权限,使用REVOKE语句,示例如下:
REVOKE superuser from "p4_账号id" ;//撤销子账号superuser的权限

更多关于权限的撤销操作请参见:REVOKE

权限查看

您可使用以下命令查看当前账号的权限。
select rolname from pg_roles;
select user_display_name(rolname) from pg_roles;
若您是使用psql客户端连接交互式分析(Interactive Analytics),您可使用\du查看当前账号的所有子账号以及对应的权限。