Browse Source

added readaccess role; refactored init scripts; run init script as postgres user

tags/9.6-1.1.0
Robin Thoni 6 years ago
parent
commit
3f7f3f3688

docker-entrypoint-initdb-core.d/1.0.0_02_create_user.sh → docker-entrypoint-initdb-core.d/1.0.0_05_create_user.sh View File


+ 7
- 0
docker-entrypoint-initdb-core.d/1.1.0_01_revoke_public.sh View File

@@ -0,0 +1,7 @@
1
+#! /usr/bin/env bash
2
+
3
+psql <<-EOF
4
+\c ${POSTGRES_DB}
5
+
6
+REVOKE ALL ON schema public FROM public;
7
+EOF

+ 0
- 36
docker-entrypoint-initdb-core.d/1.1.0_02_master_create_ro_user.sh View File

@@ -1,36 +0,0 @@
1
-#! /usr/bin/env bash
2
-
3
-if [ "${POSTGRES_MASTER_MODE}" != 1 ]
4
-then
5
-  echo "Database is not in master mode. Exiting."
6
-  exit 0
7
-fi
8
-
9
-psql <<-EOF
10
-CREATE USER ${POSTGRES_RO_USER} WITH ENCRYPTED PASSWORD '${POSTGRES_RO_PASSWORD}';-- NOINHERIT;
11
-
12
-\c ${POSTGRES_DB}
13
-
14
-REVOKE ALL ON DATABASE ${POSTGRES_DB} FROM ${POSTGRES_RO_USER};
15
-GRANT CONNECT ON DATABASE ${POSTGRES_DB} TO ${POSTGRES_RO_USER};
16
-
17
-REVOKE ALL ON SCHEMA public FROM ${POSTGRES_RO_USER};
18
-REVOKE CREATE ON SCHEMA public FROM ${POSTGRES_RO_USER};
19
-GRANT USAGE ON SCHEMA public TO ${POSTGRES_RO_USER};
20
-
21
-REVOKE ALL ON ALL TABLES IN SCHEMA public FROM ${POSTGRES_RO_USER};
22
-GRANT SELECT ON ALL TABLES IN SCHEMA public TO ${POSTGRES_RO_USER};
23
-ALTER DEFAULT PRIVILEGES IN SCHEMA public REVOKE ALL ON TABLES FROM ${POSTGRES_RO_USER};
24
-ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON TABLES TO ${POSTGRES_RO_USER};
25
-
26
-REVOKE ALL ON ALL SEQUENCES IN SCHEMA public FROM ${POSTGRES_RO_USER};
27
-GRANT USAGE ON ALL SEQUENCES IN SCHEMA public TO ${POSTGRES_RO_USER};
28
-ALTER DEFAULT PRIVILEGES IN SCHEMA public REVOKE ALL ON SEQUENCES FROM ${POSTGRES_RO_USER};
29
-ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT USAGE ON SEQUENCES TO ${POSTGRES_RO_USER};
30
-
31
-REVOKE ALL ON ALL FUNCTIONS IN SCHEMA public FROM ${POSTGRES_RO_USER};
32
-GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA public TO ${POSTGRES_RO_USER};
33
-ALTER DEFAULT PRIVILEGES IN SCHEMA public REVOKE ALL ON FUNCTIONS FROM ${POSTGRES_RO_USER};
34
-ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT EXECUTE ON FUNCTIONS TO ${POSTGRES_RO_USER};
35
-
36
-EOF

+ 29
- 0
docker-entrypoint-initdb-core.d/1.1.0_05_create_readaccess_role.sh View File

@@ -0,0 +1,29 @@
1
+#! /usr/bin/env bash
2
+
3
+psql <<-EOF
4
+CREATE ROLE readaccess;
5
+
6
+REVOKE ALL ON DATABASE ${POSTGRES_DB} FROM readaccess;
7
+GRANT CONNECT ON DATABASE ${POSTGRES_DB} TO readaccess;
8
+
9
+\c ${POSTGRES_DB}
10
+
11
+REVOKE ALL ON SCHEMA public FROM readaccess;
12
+REVOKE CREATE ON SCHEMA public FROM readaccess;
13
+GRANT USAGE ON SCHEMA public TO readaccess;
14
+
15
+REVOKE ALL ON ALL TABLES IN SCHEMA public FROM readaccess;
16
+GRANT SELECT ON ALL TABLES IN SCHEMA public TO readaccess;
17
+ALTER DEFAULT PRIVILEGES IN SCHEMA public REVOKE ALL ON TABLES FROM readaccess;
18
+ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON TABLES TO readaccess;
19
+
20
+REVOKE ALL ON ALL SEQUENCES IN SCHEMA public FROM readaccess;
21
+GRANT USAGE ON ALL SEQUENCES IN SCHEMA public TO readaccess;
22
+ALTER DEFAULT PRIVILEGES IN SCHEMA public REVOKE ALL ON SEQUENCES FROM readaccess;
23
+ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT USAGE ON SEQUENCES TO readaccess;
24
+
25
+REVOKE ALL ON ALL FUNCTIONS IN SCHEMA public FROM readaccess;
26
+GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA public TO readaccess;
27
+ALTER DEFAULT PRIVILEGES IN SCHEMA public REVOKE ALL ON FUNCTIONS FROM readaccess;
28
+ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT EXECUTE ON FUNCTIONS TO readaccess;
29
+EOF

docker-entrypoint-initdb-core.d/1.1.0_01_master_create_rep_user.sh → docker-entrypoint-initdb-core.d/1.1.0_10_master_create_rep_user.sh View File


+ 12
- 0
docker-entrypoint-initdb-core.d/1.1.0_15_master_create_ro_user.sh View File

@@ -0,0 +1,12 @@
1
+#! /usr/bin/env bash
2
+
3
+if [ "${POSTGRES_MASTER_MODE}" != 1 ]
4
+then
5
+  echo "Database is not in master mode. Exiting."
6
+  exit 0
7
+fi
8
+
9
+psql <<-EOF
10
+CREATE USER ${POSTGRES_RO_USER} WITH ENCRYPTED PASSWORD '${POSTGRES_RO_PASSWORD}';-- NOINHERIT;
11
+GRANT readaccess to ${POSTGRES_RO_USER};
12
+EOF

docker-entrypoint-initdb-core.d/1.1.0_03_master_edit_postgres_conf.sh → docker-entrypoint-initdb-core.d/1.1.0_20_master_edit_postgres_conf.sh View File


docker-entrypoint-initdb-core.d/1.1.0_04_master_edit_pg_hba_conf.sh → docker-entrypoint-initdb-core.d/1.1.0_25_master_edit_pg_hba_conf.sh View File


docker-entrypoint-initdb-core.d/1.1.0_05_slave_edit_postgres_conf.sh → docker-entrypoint-initdb-core.d/1.1.0_30_slave_edit_postgres_conf.sh View File


docker-entrypoint-initdb-core.d/1.1.0_06_slave_edit_recovery_conf.sh → docker-entrypoint-initdb-core.d/1.1.0_35_slave_edit_recovery_conf.sh View File


+ 1
- 1
docker-entrypoint.sh View File

@@ -153,7 +153,7 @@ if [ "$1" = 'postgres' ]; then
153 153
                 echo "Running core migrate"
154 154
                 migrate.py --folder /docker-entrypoint-initdb-core.d/ --init
155 155
 
156
-                export PGUSER="${POSTGRES_USER}"
156
+                #export PGUSER="${POSTGRES_USER}"
157 157
                 export PGDATABASE="${POSTGRES_DB}"
158 158
                 echo "Running user migrate"
159 159
                 migrate.py --folder /docker-entrypoint-initdb.d/ --init

Loading…
Cancel
Save