授权用户访问PXF

Greenplum平台扩展框架(PXF)实现了一个名为pxf的协议,您可以使用该协议创建引用外部数据存储中数据的外部表。PXF协议和Java服务打包作为Greenplum数据库扩展。

您必须在将要使用框架访问外部数据的每个数据库实例中启用PXF扩展。您还必须向需要访问权限的用户/角色明确授予pxf协议的GRANT权限。

在数据库中启用PXF

您必须在计划使用该扩展的每个Greenplum数据库中显式注册PXF扩展。您必须具有Greenplum数据库管理员权限才能注册扩展。

对要在其中使用PXF的每个数据库执行以下过程:

  1. 使用gpadmin用户连接数据库

    gpadmin@gpmaster$ psql -d <database-name> -U gpadmin
    
  2. 创建PXF扩展名。您必须具有Greenplum数据库管理员权限才能创建扩展。 例如:

    database-name=# CREATE EXTENSION pxf;
    

    创建pxf扩展来注册pxf协议和PXF访问外部数据所需的调用处理程序。

在数据库中禁用PXF

当您不再希望在特定数据库上使用PXF时,必须显式删除该数据库的PXF扩展名。您必须具有Greenplum数据库管理员权限才能删除扩展。

  1. 使用gpadmin用户连接数据库

    gpadmin@gpmaster$ psql -d <database-name> -U gpadmin
    
  2. 删除pxf扩展

    database-name=# DROP EXTENSION pxf;
    

    如果当前使用pxf协议定义了任何外部表,则DROP命令将失败。 如果选择强制删除这些外部表,请添加CASCADE选项。

授权一个用户访问PXF

要使用PXF读取外部数据,请使用CREATE EXTERNAL TABLE命令创建一个外部表,该命令指定pxf协议。您必须向所有需要此类访问权限的非SUPERUSER的Greenplum数据库角色明确授予对pxf协议的SELECT权限。

要授予特定角色对pxf协议的访问权限,请使用GRANT命令。例如,要授予名为bill的角色对使用pxf协议创建的外部表引用的数据的读取访问权限,请执行以下操作:

GRANT SELECT ON PROTOCOL pxf TO bill;

要使用PXF将数据写入外部数据存储,请使用CREATE WRITABLE EXTERNAL TABLE命令创建一个外部表,该命令指定pxf协议。您必须向需要此类访问的所有非SUPERUSER的Greenplum数据库角色明确授予对pxf协议的INSERT权限。 例如:

GRANT INSERT ON PROTOCOL pxf TO bill;