PostgreSQL — различия между версиями

Материал из megapuper
Перейти к: навигация, поиск
Строка 16: Строка 16:
 
  '''hostssl''' - для подключений локальных или удаленных хостов к серверу, с использованием ssl протокола, обеспечивающим шифрование всех взаимодействий с сервером.
 
  '''hostssl''' - для подключений локальных или удаленных хостов к серверу, с использованием ssl протокола, обеспечивающим шифрование всех взаимодействий с сервером.
  
2. Второй параметр database обозначает базы данных, к которым можно подключаться:
+
2. Второй параметр database обозначает базы данных, к которым можно подключаться
 
  '''all''' - для разрешения подключения ко всем базам данных
 
  '''all''' - для разрешения подключения ко всем базам данных
 
  '''sameuser''' - для разрешения подключения только к базе данных имя которой совпадает с именем пользователя
 
  '''sameuser''' - для разрешения подключения только к базе данных имя которой совпадает с именем пользователя
 
  '''dbname''' - имя базы данных или список баз данных, разделенный запятыми - для разрешения подключения к конкретной базе данных
 
  '''dbname''' - имя базы данных или список баз данных, разделенный запятыми - для разрешения подключения к конкретной базе данных
  
3.  
+
3. Третий определяет пользователей, которым можно подключаться
 
  '''all''' - все пользователи
 
  '''all''' - все пользователи
 
  '''user''' - имена пользователей или групп, которым разрешается подключение с этого компьютера:
 
  '''user''' - имена пользователей или групп, которым разрешается подключение с этого компьютера:
Строка 30: Строка 30:
  
 
5. Тип аутентификации:
 
5. Тип аутентификации:
 +
trust
 +
reject
 +
md5
 +
crypt
 +
password
 +
krb5
 +
ident
 +
idap
 +
pam
  
trust
 
reject
 
md5
 
crypt
 
password
 
krb5
 
ident
 
idap
 
pam
 
 
6. Опции, в зависимости от типа аутентификации.
 
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
 
 
  
  

Версия 16:42, 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. Опции, в зависимости от типа аутентификации.


Заходим под пользователем 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 - восстановление базы из дампа