PostrgeSQL - Установка и настройка

  • $ sudo apt-get install postgresql postgresql-contrib
  • $ passwd postgres
  • $ sudo su - postgres
  • $ psql postgres

nano /usr/local/Cellar/postgresql-9.4/9.4.5/homebrew.mxcl.postgresql.plist

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>KeepAlive</key>
  <true/>
  <key>Label</key>
  <string>homebrew.mxcl.postgresql.plist</string>
  <key>ProgramArguments</key>
  <array>
    <string>/usr/local/Cellar/postgresql-9.4/9.4.5/bin/postgres</string>
    <string>-D</string>
    <string>/usr/local/var/postgres</string>
    <string>-r</string>
    <string>/usr/local/var/postgres/server.log</string>
  </array>
  <key>RunAtLoad</key>
  <true/>
  <key>WorkingDirectory</key>
  <string>/usr/local/var</string>
  <key>StandardErrorPath</key>
  <string>/usr/local/var/postgres/server.log</string>
</dict>
</plist>

Не безопасно, даем внешний доступ для IP 192.168.1.1 (можно использовать маски сети) Для подключения извне, также необходимо включить прослушивания внешнего IP
в настройках /etc/postgresql/X.Y/main/postgresql.conf

nano /etc/postgresql/X.Y/main/pg_hba.conf

# Database administrative login by Unix domain socket
#local   all             postgres                                peer

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
#local   all             all                                     peer
# IPv4 local connections:
#host    all             all             127.0.0.1/32            md5
# IPv6 local connections:
#host    all             all             ::1/128                 md5
# Allow replication connections from localhost, by a user with the
# replication privilege.
local   replication     all                                     peer
host    replication     all             127.0.0.1/32            md5
host    replication     all             ::1/128                 md5

local   all             all                                     trust
host    all             all             ::1/128                 trust
host    all             all             127.0.0.1/32            trust
host    all             all             192.168.1.1/32             trust
Последующие записи не переобозначают предыдущие.
Предыдущие однотипные записи должны быть закомментированы
Это однотипные записи
#local   all             all                                     peer
local   all             all                                     trust

методы аутентификации

trust
Разрешает безусловное подключение. Этот метод позволяет тому, кто может подключиться к серверу с базой данных Postgres Pro, войти под любым желаемым пользователем Postgres Pro без введения пароля и без какой-либо другой аутентификации.
ident
Получает имя пользователя операционной системы клиента, связываясь с сервером Ident, и проверяет, соответствует ли оно имени пользователя базы данных. Аутентификация ident может использоваться только для подключений по TCP/IP. Для локальных подключений применяется аутентификация peer
peer
Получает имя пользователя операционной системы клиента из операционной системы и проверяет, соответствует ли оно имени пользователя запрашиваемой базы данных. Доступно только для локальных подключений.
md5
scram-sha-256
Проверяет пароль пользователя, производя аутентификацию SCRAM-SHA-256 или MD5.

Подробнее...

Проверка доступа

$ psql -U postgres -h localhost
$ psql -U postgres
  • Как создать пользователя в PostgreSQL?
  • CREATE USER ramesh WITH password ‘tmppassword’;
  • Как посмотреть список пользователей?
  • SELECT * FROM pg_shadow;
  • Как сменить пароль у пользователя?
  • ALTER USER postgres WITH PASSWORD 'password';

Смена пароля

Включаем однопользовательский режим nano /usr/local/opt/postgresql/pg_hba.conf

local   all             all                                     trust
  • подключаемся к бд, указывая локального пользователя (в моем случае mirocow)
  • меняем пароль у пользователя mirocow

включаем многопользовательский режим добавляем строчку в nano /usr/local/opt/postgresql/pg_hba.conf

local   all         postgres                          password

Смена прав

  • ALTER TABLE sequence_name OWNER TO владелец
  • Как посмотреть привелегии пользователя?
  • SELECT n.nspname as "Схема", 
    c.relname as "Таблица", 
    c.relacl as "Привилегии доступа" 
    FROM pg_catalog.pg_class c 
    LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace 
    WHERE c.relkind IN ('r', 'v', 'S') 
    AND pg_catalog.pg_table_is_visible(c.oid) /*AND n.nspname !~ '^pg_'*/ 
    ORDER BY 1, 2;
  • Как дать привелегии
  • GRANT ALL ON DATABASE demodb TO demo;
  • Как создать базу в PostgreSQL?
  • CREATE DATABASE mydb WITH OWNER ramesh;
  • Как удалить базу в PostgreSQL?
  • DROP DATABASE mydb;
  • Как получить весь список баз в Postgresql?
  • SELECT datname FROM pg_database;
  • SELECT * FROM pg_database;
  • Как вывести список всех таблиц?
  • SELECT table_name FROM information_schema.tables WHERE table_schema = 'public';
  • postgresql/postgresql.txt
  • Последнее изменение: 2018/03/08 23:21
  • mirocow