По умолчанию в Debian 10 из стандартных репозитариев устанавливается 11 версия PostgreSQL
$ sudo apt install postgresql
При этом создается пользователь postgres, от имени которого будет инициироваться запуск приложения. Учетная запись postgres создается как заблокированная для аутентификации в самой ОС и поэтому пароля не имеет.
Добавление PostgreSQL в автозагрузку и запуск сервиса:
$ sudo systemctl enable postgresql
$ sudo systemctl start postgresql
Сервер баз по умолчанию слушает localhost на порту 5432.
Логи сервера будут в файле - /var/log/postgresql/
Заходим от имени postgres в командную строку сервера базы данных
$ sudo -u postgres psql
В этом режиме под пользователем postgres меняются глобальные настройки всей СУБД (создаются пользователи, базы, выполняется репликация и пр.)
Просмотр всех созданных пользователей:
postgres=# \du
Создание нового пользователя, выдача ему прав на создание базы данных, установка пароля для пользователя:
postgres=# CREATE USER korolev;
postgres=# ALTER ROLE korolev CREATEDB;
postgres=# ALTER USER korolev with encrypted password '******';
Выход из клиента psql - CTRL+D
По умолчанию все созданные локальные пользователи имеют метод аутентификации – peer, то есть выполняется аутентификация средствами ОС и при подключении к СУБД из под одноименного пользователя ОС не потребуется введение пароля.
Это регулируется в файле - /etc/postgresql/11/main/pg_hba.conf
Из оболочки ОС под пользователем korolev создаем базу данных с именем tet
$ createdb tet
Теперь созданная база данных может быть использована пользователем korolev.
Подключение к базе выполняется так:
$ psql -d tet
psql (11.12 (Debian 11.12-0+deb10u1))
Введите "help", чтобы получить справку.
tet=>
Пользователь, создавший базу данных может делать с ней все что захочет.
К базе данных можно подключиться с использованием библиотек языков программирования, например, с помощью библиотеки psycopg2 и Python.
Установка библиотеки psycopg2 для взаимодействия с базой данных:
$ sudo apt install python3-psycopg2
$ sudo apt install libpq-dev
Теперь можно использовать скрипт на Python для выполнения команд
#!/usr/bin/python3
#-*-coding: utf-8-*-
import psycopg2
conn = psycopg2.connect(dbname='tet', user='korolev', password='******', host='localhost')
cursor = conn.cursor()
cursor.execute('SELECT * FROM ats')
for row in cursor:
print(row)
cursor.close()
conn.close()
Комментариев нет:
Отправить комментарий