F.1. adminpack
Модуль adminpack
предоставляет несколько вспомогательных функций, которыми могут пользоваться pgAdmin и другие средства администрирования и управления базами данных, например для удалённого управления файлами журналов сервера. По умолчанию использовать все эти функции разрешено только суперпользователям, но такое право можно дать и другим пользователям с помощью команды GRANT
.
Функции, приведённые в Таблице F.1, предоставляют возможность записи в файлы на компьютере, где работает сервер. (См. также функции в Таблице 9.94, которые открывают доступ только на чтение.) Они позволяют обычным пользователям обращаться только к файлам в каталоге кластера баз данных, но не ограничивают суперпользователей и членов ролей pg_read_server_files или pg_write_server_files. При этом путь может задаваться и как абсолютный, и как относительный.
Таблица F.1. Функции модуля adminpack
Имя | Тип результата | Описание |
---|---|---|
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 | Удалить файл |
pg_catalog.pg_logdir_ls() | setof record | Получить список файлов журналов в каталоге log_directory |
Функция pg_file_write
записывает данные (data
) в файл с именем filename
. Если флаг append
сброшен, этот файл не должен существовать. Если же флаг append
установлен, существование файла допускается и в этом случае данные будут дописаны в него. Возвращает число записанных байт.
Функция pg_file_rename
переименовывает файл. Если параметр archivename
опущен или равен NULL, она просто переименовывает файл oldname
в newname
(файл с новым именем не должен существовать). Если параметр archivename
задан, она сначала переименовывает newname
в archivename
(такой файл не должен существовать), а затем переименовывает oldname
в newname
. В случае ошибки на втором этапе переименования она попытается переименовать archivename
назад в newname
, прежде чем выдать ошибку. Возвращает true в случае успеха и false, если исходные файлы отсутствуют или их невозможно изменить; в других случаях выдаются ошибки.
Функция pg_file_unlink
удаляет заданный файл. Возвращает true в случае успеха, false в случае отсутствия указанного файла либо при сбое в вызове unlink()
; в других случаях выдаются ошибки.
Функция pg_logdir_ls
возвращает время создания и пути всех файлов журналов в каталоге log_directory. Чтобы эта функция работала, параметр log_filename должен иметь значение по умолчанию (postgresql-%Y-%m-%d_%H%M%S.log
).