本小节将会为您介绍在交互式分析中专家模式(即标准的PostgreSQL权限体系)授权操作。

鉴权流程

在对用户进行授权/撤销权限之前,可以参见下图理解交互式分析中的权限管理流程。

  1. 当某个用户访问交互式分析实例内的对象时,后台会自动执行如下图所示的权限鉴定流程。727
  2. 当某个用户/用户组在交互式分析实例内创建对象时,后台会自动执行如下图所示的权限鉴定流程。728

专家模式授权

若您的数据库使用专家模式(标准PostgreSQL授权语句)为用户授权,您可以参照以下步骤来操作:

  1. 创建角色

    一个用户要访问交互式分析必须先被superuser创建进交互式分析角色中,使用命令语句如下:

    CREATE USER "云账号ID/云邮箱"; //若是子账号,云账号ID前需要加p4_,即p4_uid
    说明 name遵循SQL标识符的规则,是未经装饰没有特殊字符,或者是用双引号包围。
    示例用法如下:
    CREATE ROLE "xxx@aliyun.com" ;//创建一个普通角色
    CREATE USER "p4_uid" SUPERUSER;//创建角色并授予superuser权限。

    除SQL命令以外,您还可以通过Hologres管控台以可视化的方式创建角色,详见新增用户

    更多关于创建角色请参见PostgreSQL文档

  2. 权限授予

    将用户创建进交互式分析的角色中后,还需要给用户授予一定的权限,该用户才能在权限范围内使用交互式分析。在交互式分析中常用的权限授予可以参照以下表:

    权限 语法 必须
    创建可登录子账号 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 SELECT ON TABLE tablename FROM "云账号ID/云邮箱" ;//若是子账号,云账号ID前需要加p4_,如p4_uid

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

权限查看

您可使用以下两种方式查看实例下用户的权限:

  1. SQL方式查看

    您可以通过以下SQL命令来查看对应的用户角色权限。

    select rolname from pg_roles;
    select user_display_name(rolname) from pg_roles;
  2. Hologres管控台可视化查看

    您可以在Hologres管控台用户管理页面以可视化的方式查看用户的角色权限。

    729

删除用户

要删除一个用户,使用以下命令来完成
DROP USER "云账号ID/云邮箱";//若是子账号,云账号ID前需要加p4_,如p4_uid。
说明 :用户被删除之后,将不能连接实例并访问实例内的任何对象,请谨慎操作