-
Notifications
You must be signed in to change notification settings - Fork 7
PostgreSQL
andyceo edited this page Sep 10, 2018
·
6 revisions
Нужно при первом запуске прокинуть в контейнер переменную POSTGRES_PASSWORD
:
environment:
POSTGRES_PASSWORD: example
При первом запуске скрипт initdb
создаст папку для базы данных и инициализирует файлы в ней, пользователя POSTGRES_USER
(по умолчанию - postgres
) с паролем POSTGRES_PASSWORD
.
При последующих запусках переменные POSTGRES_USER
и POSTGRES_PASSWORD
не учитываются (см. entrypoint образа)
CREATE USER myuser WITH PASSWORD 'myPassword';
CREATE DATABASE mydb;
GRANT ALL PRIVILEGES ON DATABASE mydb to myuser;
-
Список всех пользователей:
SELECT u.usename AS "User name", u.usesysid AS "User ID", CASE WHEN u.usesuper AND u.usecreatedb THEN CAST('superuser, create database' AS pg_catalog.text) WHEN u.usesuper THEN CAST('superuser' AS pg_catalog.text) WHEN u.usecreatedb THEN CAST('create database' AS pg_catalog.text) ELSE CAST('' AS pg_catalog.text) END AS "Attributes" FROM pg_catalog.pg_user u ORDER BY 1;
-
Список баз данных, к которым пользователь может присоединиться:
SELECT u.usename, (SELECT string_agg(d.datname, ',' ORDER BY d.datname) FROM pg_database d WHERE has_database_privilege(u.usename, d.datname, 'CONNECT')) AS allowed_databases FROM pg_user u ORDER BY u.usename
-
Список пользователей, котором разрешено присоединяться к базе:
SELECT d.datname, (SELECT string_agg(u.usename, ',' order by u.usename) FROM pg_user u WHERE has_database_privilege(u.usename, d.datname, 'CONNECT')) AS allowed_users FROM pg_database d ORDER BY d.datname;
Footer is under construction
Sidebar is under construction