Для проекта HelpCovid GPLv3 + (C ++ 17, Linux / x86-64, Debian / Buster, PostgreSQL 11 или 12) и выпуск # 27 , мы хотим очистить все данные в данной PostgreSQL 11 (или 12) базе данных. Сегодня у нас (6 апреля 2020 года, git commit 2843184d9f589d51bd9
) есть только таблицы и индексы (см. Нашу документацию в DATABASE.md
и наш файл C ++ hcv_database.cc
для подробной информации).
Мы просто хотим удалить каждую таблицу и индекс (то есть «все данные») из данной базы данных (инициализируется нашим generate-config.py
python сценарием ).
Мы попробовали несколько подходов :
Но пока что каждая попытка не удалась.
В commit cb982e1a57c9de81d наблюдается следующий отладочный вывод (вывод отладочных сообщений с макросом HCV_DEBUGOUT
в C ++ содержит ΔBG!
). Запуск ./helpcovid --clear-database -D -T 2
после ./generate-config.py
:
./helpcovid[1393556]: HelpCovid cb982e1a57c9 start adding <?hcv confmsg, but --clear-database still does not work (issue#27) program arguments:
... ./helpcovid --clear-database -D -T 2
./helpcovid[1393556]: hcv_main.cc:573 - !! parsed 5 program arguments
./helpcovid[1393556]: hcv_main.cc:884 - !! start of ./helpcovid
version:github.com/bstarynk/helpcovid built Mon 06 Apr 2020 08:35:00 AM MEST
... gitcommit cb982e1a57c9 start adding <?hcv confmsg, but --clear-database still does not work (issue#27)
... md5sum 7f39a5002c3afc4a6b242015a9f856bb on rimski
at Mon Apr 6 08:35:15 2020 MEST on rimski
./helpcovid[1393556]: hcv_main.cc:626 - !! loading configuration file /home/basile/.helpcovidrc
./helpcovid[1393556]: hcv_main.cc:632 - !! helpcovid loaded configuration file /home/basile/.helpcovidrc
./helpcovid[1393556]: hcv_web.cc:76 - !! hcv_initialize_web: weburl='http://localhost:8089/', webroot='/home/basile/helpcovid/webroot/', opensslcert='', opensslkey=''
./helpcovid[1393556]: hcv_web.cc:114 - !! starting plain HTTP server using weburl http://localhost:8089/ and webroot /home/basile/helpcovid/webroot/ hcv_webserver@0x5622aefcb0d0
./helpcovid[1393556]: hcv_main.cc:964 - !! helpcovid debugging enabled
./helpcovid[1393556]: ΔBG!hcv_main.cc:965▪ 00.00 s‣ helpcovid is debugging
./helpcovid[1393556]: hcv_main.cc:1026 - !! helpcovid unable to write builtin pidfile /var/run/helpcovid.pid
-: Permission denied
./helpcovid[1393556]: hcv_database.cc:114 - !! using 'dbname=helpcovid_db user=helpcovid_usr password=passwd1234 hostaddr=127.0.0.1 port=5432' as PostGreSQL connection string.
./helpcovid[1393556]: hcv_database.cc:129 - !! hcv_initialize_database connstr=dbname=helpcovid_db user=helpcovid_usr password=passwd1234 hostaddr=127.0.0.1 port=5432
./helpcovid[1393556]: hcv_database.cc:133 - !! hcv_initialize_database for connstr=dbname=helpcovid_db user=helpcovid_usr password=passwd1234 hostaddr=127.0.0.1 port=5432 hcv_dbconn is 0x5622aefcb810
terminate called after throwing an instance of 'pqxx::insufficient_privilege'
what(): ERROR: must be owner of database helpcovid_db
zsh: abort (core dumped) ./helpcovid --clear-database -D -T 2
Эта программа HelpCovid должна быть развернута с использованием методов setuid . Я недоволен по соображениям кибербезопасности идеей запуска любой внешней команды (используя system (3) , popen (3) или fork (2) + execve (2) + waitpid (2) ..) на этом этапе для очистки базы данных.
Конечно, я PostgreSQL новичок ie.