Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Следующая версия
Предыдущая версия
postgresql:postgresql [2015/09/26 13:32] – внешнее изменение 127.0.0.1postgresql:postgresql [2018/03/08 20:21] (текущий) – [Настройка доступа] mirocow
Строка 1: Строка 1:
-{{tag>database postgres}}+{{tag>databases postgres postgresql macos homebrew}}
  
-====== PostgreSql ======+====== PostrgeSQL - Установка и настройка ======
  
 ===== Установка ===== ===== Установка =====
Строка 8: Строка 8:
     * $ passwd postgres     * $ passwd postgres
     * $ sudo su - postgres     * $ sudo su - postgres
-    * psql postgres+    * psql postgres
  
 +==== Homebrew plst ====
 +
 +nano /usr/local/Cellar/postgresql-9.4/9.4.5/homebrew.mxcl.postgresql.plist
 +<code xml>
 +<?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>
 +</code>
 ==== Настройка доступа ==== ==== Настройка доступа ====
 +
 +Не безопасно, даем внешний доступ для IP **192.168.1.1** ([[:networks#маски|можно использовать маски сети]])
 +Для подключения извне, также необходимо включить прослушивания внешнего IP \\ 
 +в настройках **/etc/postgresql/X.Y/main/postgresql.conf**
 +
  
 **nano /etc/postgresql/X.Y/main/pg_hba.conf** **nano /etc/postgresql/X.Y/main/pg_hba.conf**
-  local   all         all                               trust     # replace ident or peer with trust +<code> 
-  host   all         all          192.168.1.1/28        md5+# 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
  
-  * apt-get install phppgadmin+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 
 +</code>
  
-  git clone git://github.com/phppgadmin/phppgadmin.git+<note important>Последующие записи не переобозначают предыдущие.\\ Предыдущие однотипные записи должны быть закомментированы \\ 
 +Это однотипные записи \\ 
 +<code> 
 +#local   all             all                                     peer 
 +local   all             all                                     trust 
 +</code> 
 +</note> 
 + 
 +  * ADDRESS - [[:networks#маски|Соответсвует маске]] 
 +  * METHOD - Метод-аутентификации 
 +=== методы аутентификации === 
 + 
 +**trust** \\ 
 +Разрешает безусловное подключение. Этот метод позволяет тому, кто может подключиться к серверу с базой данных Postgres Pro, войти под любым желаемым пользователем Postgres Pro без введения пароля и без какой-либо другой аутентификации.\\ 
 +**ident** \\ 
 +Получает имя пользователя операционной системы клиента, связываясь с сервером Ident, и проверяет, соответствует ли оно имени пользователя базы данных. Аутентификация ident может использоваться только для подключений по TCP/IP. Для локальных подключений применяется аутентификация peer \\ 
 +**peer** \\ 
 +Получает имя пользователя операционной системы клиента из операционной системы и проверяет, соответствует ли оно имени пользователя запрашиваемой базы данных. Доступно только для локальных подключений. \\ 
 +**md5** \\ 
 +**scram-sha-256** \\ 
 +Проверяет пароль пользователя, производя аутентификацию SCRAM-SHA-256 или MD5.  \\ 
 + 
 +[[https://postgrespro.ru/docs/postgrespro/10/auth-pg-hba-conf.html|Подробнее...]] 
 +=== Проверка доступа === 
 + 
 + 
 +<code bash> 
 +$ psql -U postgres -h localhost 
 +$ psql -U postgres 
 +</code>
  
 ===== Вопрос/Ответ ===== ===== Вопрос/Ответ =====
  
 ==== Пользователи ==== ==== Пользователи ====
- 
  
   * **Как создать пользователя в PostgreSQL?**   * **Как создать пользователя в PostgreSQL?**
Строка 36: Строка 114:
   * **Как сменить пароль у пользователя?**   * **Как сменить пароль у пользователя?**
   * ALTER USER postgres WITH PASSWORD 'password';   * ALTER USER postgres WITH PASSWORD 'password';
 +
 +=== Смена пароля ===
 +
 +Включаем однопользовательский режим nano /usr/local/opt/postgresql/pg_hba.conf
 +<code>
 +local   all             all                                     trust
 +</code>
 +
 +  * подключаемся к бд, указывая локального пользователя (в моем случае mirocow)
 +  * меняем пароль у пользователя mirocow
 +
 +включаем многопользовательский режим
 +добавляем строчку в nano /usr/local/opt/postgresql/pg_hba.conf
 +<code>
 +local   all         postgres                          password
 +</code>
 +
 +==== Права ====
 +
 +=== Смена прав ===
 +
 +  * ALTER TABLE sequence_name OWNER TO владелец
  
 ==== Привелегии ==== ==== Привелегии ====
Строка 53: Строка 153:
   * **Как дать привелегии**   * **Как дать привелегии**
   * GRANT ALL ON DATABASE demodb TO demo;   * GRANT ALL ON DATABASE demodb TO demo;
 +
 ==== Базы ==== ==== Базы ====
  
Строка 71: Строка 172:
   * SELECT table_name FROM information_schema.tables WHERE table_schema = 'public';   * SELECT table_name FROM information_schema.tables WHERE table_schema = 'public';
  
-===== Документация ===== 
- 
-  * **[[http://postgresql.ru.net/manual/index.html|Документация]]** 
-  * http://habrahabr.ru/hub/postgresql/ 
- 
- 
-===== Ссылки ===== 
- 
- 
-  * http://pembaca.summercode.com/simpleviewer/4cecbdfadd98231329000006/1 
-  * http://wiki.debian.org/ru/PostgreSql 
-  * http://ru.wikipedia.org/wiki/PostgreSQL