Я заблокирован следующей проблемой.
log_statement postgres на сервере имеет значение ddl (или все). База данных создана моим приложением, написанным на C ++. Запросы отправляются в БД с использованием libpq - PQexe c.
Каждый запрос регистрируется дважды, я не знаю почему (я не программист C ++ и не эксперт по postgres):
Apr 3 02:26:44 xxx postgres[12345]: [8-1] [2020-04-03 02:26:44.487 CDT] [s:xxx.694d] [u:user] [a:[unknown]] [db:postgres] [p:12345] [clnt:[local]] LOG: statement: CREATE USER "gingillo" WITH PASSWORD 'giggio';
Apr 3 02:26:44 xxx postgres[12345]: [9-1] [2020-04-03 02:26:44.487 CDT] [s:xxx.694d] [u:user] [a:[unknown]] [db:postgres] [p:12345] [clnt:[local]] LOG: AUDIT: SESSION,1,1,ROLE,CREATE ROLE,,,"CREATE USER ""gingillo"" WITH PASSWORD <REDACTED>",<not logged>
Как вы уже представляли, я не хочу регистрировать пароли, поэтому я изменил текущий запрос (1):
CREATE USER "gingillo" WITH PASSWORD 'giggio'
, чтобы он был следующим (2):
BEGIN;SET LOCAL log_statement = 'none';CREATE USER "gingillo" WITH PASSWORD 'giggio';COMMIT;
Если я запускаю вручную запрос (2), я получаю желаемый результат, в журнал заносится только один журнал, содержащий УДАЛЕНО вместо пароля:
Apr 3 02:26:44 xxx postgres[12345]: [9-1] [2020-04-03 02:26:44.487 CDT] [s:xxx.694d] [u:user] [a:[unknown]] [db:postgres] [p:12345] [clnt:[local]] LOG: AUDIT: SESSION,1,1,ROLE,CREATE ROLE,,,"CREATE USER ""gingillo"" WITH PASSWORD <REDACTED>",<not logged>
Но когда тот же запрос выполняется C ++, у меня есть двойной журнал, показывающий даже материал log_statement:
Apr 8 06:44:24 xxx postgres[27171]: [8-1] [2020-04-08 06:44:24.489 CDT] [s:xxx.6a23] [u:user] [a:[unknown]] [db:postgres] [p:27171] [clnt:[local]] LOG: statement: BEGIN;SET LOCAL log_statement = 'none';CREATE USER "gingillo" WITH PASSWORD 'giggio';COMMIT;
Apr 8 06:44:24 xxx postgres[27171]: [9-1] [2020-04-08 06:44:24.490 CDT] [s:xxx.6a23] [u:user] [a:[unknown]] [db:postgres] [p:27171] [clnt:[local]] LOG: AUDIT: SESSION,1,1,ROLE,CREATE ROLE,,,"BEGIN;SET LOCAL log_statement = 'none';CREATE USER ""gingillo"" WITH PASSWORD <REDACTED>",<not logged>
Кто-нибудь знает, как отключить первый журнал? Что я делаю не так?