Инструменты пользователя

Инструменты сайта


databases:postgres

Различия

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

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

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
databases:postgres [2023/06/06 05:27]
admin [Роли PostgreSQL и методы аутентификации]
databases:postgres [2025/03/01 14:08] (текущий)
admin [Роли PostgreSQL и методы аутентификации]
Строка 15: Строка 15:
 Пользователь "**postgres**" создается автоматически, **в системе!!!** и является **суперпользователем** для СУБД.\\ Пользователь "**postgres**" создается автоматически, **в системе!!!** и является **суперпользователем** для СУБД.\\
  
-<code bash>$ sudo su - postgres +<code bash> 
-$ psql </code>+$ sudo su - postgres 
 +$ psql  
 + 
 +  # PG Activity 
 +su postgres 
 +bash-4.4$ pg_activity 
 + 
 +</code>
  
  
Строка 72: Строка 79:
 GRANT USAGE ON SCHEMA <имя-схемы> TO <роль>; GRANT USAGE ON SCHEMA <имя-схемы> TO <роль>;
 GRANT SELECT ON ALL TABLES IN SCHEMA <имя-схемы> TO <роль>; GRANT SELECT ON ALL TABLES IN SCHEMA <имя-схемы> TO <роль>;
 +
 +GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA public TO my_user;
 +
    
 # Удаление прав # Удаление прав
Строка 113: Строка 123:
 <code sql> <code sql>
 ALTER ROLE super WITH PASSWORD 'secret123';</code> ALTER ROLE super WITH PASSWORD 'secret123';</code>
- 
  
 <code bash> <code bash>
Строка 165: Строка 174:
 <code bash> <code bash>
 su - postgres -c "pg_dump -p 27953 -Fc postgres > /tmp/postgres_db.dump" su - postgres -c "pg_dump -p 27953 -Fc postgres > /tmp/postgres_db.dump"
- 
   # Базу нужно создать перед восстановлением   # Базу нужно создать перед восстановлением
 su - postgres -c "pg_restore --dbname=test_postgres /tmp/postgres_db.dump" su - postgres -c "pg_restore --dbname=test_postgres /tmp/postgres_db.dump"
 +
 +  # Полный бекап
 +pg_dumpall -h localhost -p 27953 -U backuper --schema-only --file /tmp/db_dump.sql
 +  # Восстановление
 +psql -U postgres -p 27953 -f /tmp/db_dump.sql
 </code> </code>
 </details> </details>
 +
 +
 +<details>
 +<summary>:!: Работа с кластером</summary>
 +<code bash>
 +pg_lsclusters
 +
 +pg_ctlcluster
 +
 +pg_ctlcluster 9.4 secondary reload/start/stop
 +</code>
 +</details>
 +
 +
 +
 +==== Liqubase ====
 +
 +<details>
 +<summary>:!: Образец скрипта для проливки (актуальнее)</summary>
 +<code bash>
 +#!/bin/bash
 +
 +java -cp liquibase-core-4.9.0.jar:picocli-4.7.6.jar:postgresql-42.7.4.jar \
 +  liquibase.integration.commandline.LiquibaseCommandLine update \
 +  -Ddefaults-file=liquibase.properties \
 +  --url=${LIQUI_URL} \
 +  --username=${LIQUI_UNAME} \
 +  --password=${LIQUI_PASSWD} 
 +</code>
 +
 +Файл .properties\\
 +Аргументы переопределяют проперти\\
 +<code yaml>
 +changeLogFile: changelog.xml
 +driver: org.postgresql.Driver
 +url: 
 +username: 
 +password: 
 +verbose: true
 +#parameter.my_var: "my data"
 +</code>
 +
 +В changelog используется так
 +<code xml>
 +(...)
 +${my_var} // либо в кавычках
 +(...)
 +</code>
 +
 +</details>
 +
 +
 +
 +
 +
 +<details>
 +<summary>:!: Образец скрипта для проливки</summary>
 +<code bash>
 +#!/bin/bash
 +export LIQUIBASE_HOME=`pwd`
 +java -jar internal/lib/liquibase-core.jar update \
 +  --changelog-file=0001_changelog.xml \
 +  --url=jdbc:postgresql://99.99.99.99:5432/my_db?currentSchema=my_schema \
 +  --username=postgres \
 +  --password=postgres
 +</code>
 +
 +В подпапке "internal/lib/" располагаются еще целый ряд джарок для liqubase\\
 +</details>
 +
 +
 +
 +
 +==== Docker ====
 +[[linux:containers#postgresql|Compose]]
 +
 +
 +
  
databases/postgres.1686029231.txt.gz · Последнее изменение: 2023/06/06 05:27 — admin