以非超级用户身份在file_fdw上创建外部表



我已经创建了一个file_fdw扩展名和一个作为超级用户的相应服务器。

CREATE EXTENSION file_fdw;
CREATE SERVER myserver FOREIGN DATA WRAPPER file_fdw;
ALTER SERVER myserver OWNER TO nonsuperuser;

我希望非超级用户nonsuperuser使用此服务器创建外部表

CREATE FOREIGN TABLE test (
a text NULL,
b text NULL
)
SERVER myserver
OPTIONS (filename '/home/me/mycsvfile.csv', format 'csv', header 'true', delimiter ';');

执行此操作会导致"只有超级用户才能更改file_fdw外部表的选项">

如何使nonsuperuser能够创建外部表?如果可能的话,我不介意将这些选项声明为超级用户。

只有高度特权的用户才能访问数据库服务器上的文件,这就是为什么您需要高权限才能创建file_fdw外部表。

从错误消息中可以清楚地看出,您使用的是旧版本的PostgreSQL;在最近的版本中,错误消息看起来像:

only superuser or a member of the pg_read_server_files role may specify the filename option of a file_fdw foreign table

因此,作为处理超级用户权限的替代方案,您可以将用户添加到pg_read_server_files角色中。

升级PostgreSQL!

相关内容

  • 没有找到相关文章

最新更新