F.1. adminpack

adminpack提供了许多支持功能,pgAdmin 和其他 Management 工具可以用来提供其他功能,例如服务器日志文件的远程 Management。默认情况下,仅超级用户可以使用所有这些功能,但使用GRANT命令可以允许其他用户使用所有这些功能。

Table F.1中显示的功能提供对托管服务器的计算机上文件的写访问权限。 (另请参见Table 9.88中的提供只读访问的功能。)只能访问数据库集群目录中的文件,除非用户是超级用户或具有 pg_read_server_files 或 pg_write_server_files 个角色(视情况而定),但相对路径或绝对路径都是允许的。

表 F.1.adminpack功能

NameReturn TypeDescription
pg_catalog.pg_file_write(filename text, data text, append boolean)bigint写入或附加到文本文件
pg_catalog.pg_file_rename(oldname text, newname text [, archivename text])boolean重命名文件
pg_catalog.pg_file_unlink(filename text)boolean移除 Files
pg_catalog.pg_logdir_ls()setof record列出log_directory目录中的日志文件

pg_file_write将指定的* data 写入 filename 命名的文件中。如果 append 为 false,则该文件必须不存在。如果 append *为 true,则该文件可能已经存在,并且将附加到该文件之后。返回写入的字节数。

pg_file_rename重命名文件。如果省略* archivename 或为 NULL,则将 oldname 重命名为 newname (必须不存在)。如果提供了 archivename ,它将首先将 newname 重命名为 archivename (必须不存在),然后将 oldname 重命名为 newname 。如果第二个重命名步骤失败,它将在报告错误之前尝试将 archivename 重命名为 newname *。成功返回 true,如果源文件不存在或不可写,则返回 false;否则,返回 false。其他情况会引发错误。

pg_file_unlink删除指定的文件。成功返回 true,如果指定的文件不存在或unlink()调用失败,则返回 false;否则,返回 false。其他情况会引发错误。

pg_logdir_ls返回log_directory目录中所有日志文件的开始时间戳和路径名。 log_filename参数必须具有其默认设置(postgresql-%Y-%m-%d_%H%M%S.log)才能使用此功能。