PostgreSQL — различия между версиями
Root (обсуждение | вклад) |
Root (обсуждение | вклад) |
||
Строка 1: | Строка 1: | ||
− | Конфиги | + | Конфиги<<br> |
postgresql.conf - порт, интерфейсы и тд<br/> | postgresql.conf - порт, интерфейсы и тд<br/> | ||
pg_hba.conf - конфиг аутентификации пользователей | pg_hba.conf - конфиг аутентификации пользователей | ||
+ | |||
Формат конфига pg_hba.conf | Формат конфига pg_hba.conf |
Версия 16:38, 27 августа 2022
Конфиги<
postgresql.conf - порт, интерфейсы и тд
pg_hba.conf - конфиг аутентификации пользователей
Формат конфига pg_hba.conf
local database user auth-method [auth-option] host database user CIDR-address auth-method [auth-option] hostssl database user CIDR-address auth-method [auth-option] host database user IP-address IP-mask auth-method [auth-option] hostssl database user IP-address IP-mask auth-method [auth-option]
1. Первое ключевое слово определяет тип подключения и соответственно тип хостовой записи
local - для клиентских подключений с того же компьютера, на котором работает сервер host - сетевое подключение hostssl - для подключений локальных или удаленных хостов к серверу, с использованием ssl протокола, обеспечивающим шифрование всех взаимодействий с сервером.
2. Второй параметр database обозначает базы данных, к которым можно подключаться:
all - для разрешения подключения ко всем базам данных sameuser - для разрешения подключения только к базе данных имя которой совпадает с именем пользователя dbname - имя базы данных или список баз данных, разделенный запятыми - для разрешения подключения к конкретной базе данных
3.
all - все пользователи user - имена пользователей или групп, которым разрешается подключение с этого компьютера: имя пользователя - имя конкретного пользователя +имя группы - имя группы список пользователей и групп, разделенный запятыми
4. CIDR-address или IP адрес и IP маска - адрес хоста.
5. Тип аутентификации:
trust reject md5 crypt password krb5 ident idap pam 6. Опции, в зависимости от типа аутентификации.
Подробнее можно почитать в самом файле pg_hba или в документации к postgres [1] в разделе Server administration - Client authentication Пример:
host all «postgres» 127.0.0.1/32 md5 Данная запись разрешает подключение пользователю postgres ко всем базам данных, причем пользователь postgres может подключаться только с локального адреса (127.0.0.1). Метод md5 означает, что обязательно использование пароля при установлении подключения. Тоже самое можно было бы задать и с помощью такой строки в pg_hba.config: local all «postgres» md5
Заходим под пользователем postgres
# sudo -i -u postgres
Подключаемся к постгресу
# psql
Суперпользователь в PostgreSQL называется postgres. Заводим ему пароль
postgres=# ALTER USER postgres WITH PASSWORD 'password';
или так
\password postgres
После этого рихтуем pg_hba.conf и рестартим постгрес
меняем peer local all postgres peer на md5 local all postgres md5
postgres=# \c - под каким пользователем и к какой базе подключились postgres=# \l - список БД postgres=# \d - список таблиц postgres=# \с dbname - выбрать базу postgres=# \du - список пользователей с правами postgres=# \q - выход postgres=# \h [COMMAND]- вывод помощи
postgres=# create database DATABASE; - создать базу postgres=# create database DATABASE owner USER; - создать базу, владельцем которой будет USER postgres=# create user USER with password 'qwerty'; - создать пользователя с паролем postgres=# create user USER with login; - создать пользователя USER с возможностью логина postgres=# grant all privileges on database DATABASE to USER; - права на базу postgres=# drop database DATABASE; - удалить базу
# pg_dump DATABASE > dump.sql - дамп базы # pg_dump DATABASE < dump.sql - восстановление базы из дампа