В рамках более крупного проекта я пытаюсь автоматизировать создание базы данных и пользователя PostgreSQL, а также назначить им роль в Ubuntu. Я выяснил, как создать базу данных, и что psycopg2 - это то, что я хочу связать с ней, и проблема в том, что я не могу найти способ подключиться к базе данных. Если я использую команды
sudo -u postgres bash
psql testBase
, я могу получить доступ к базе данных и установить правило вручную. и из того, что я могу сказать, нет пароля по умолчанию для пользователя postgres, он использует другой тип аутентификации
os.system("sudo -H -u postgres bash -c 'createuser -DRS test2'")
os.system("sudo -H -u postgres bash -c 'createdb -O test2 testBase'")
conn = psycopg2.connect(database="testBase", user="test2", host="127.0.0.1")
создает базу данных и пользователя, но затем я получаю результат
Traceback (most recent call last):
File "test2.py", line 7, in <module>
conn = psycopg2.connect(database="testBase", user="test2", host="127.0.0.1")
File "/home/openvas/.local/lib/python3.6/site-packages/psycopg2/__init__.py", line 127, in connect
conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
psycopg2.OperationalError: fe_sendauth: no password supplied