Skip to content

Commit 2995639

Browse files
Roman Plevkarplevka
Roman Plevka
authored andcommitted
update db init script to set proper permissions for RO user
1 parent b2e4acd commit 2995639

File tree

2 files changed

+25
-5
lines changed

2 files changed

+25
-5
lines changed

scripts/db_init/init-user-db.sh

+14-4
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,20 @@
11
#!/bin/bash
22
set -e
33

4+
# Create the telemetry database and the telemetry role
45
psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL
56
CREATE DATABASE telemetry;
6-
CREATE ROLE telemetry WITH LOGIN PASSWORD 'changeme';
7-
GRANT CONNECT ON DATABASE telemetry TO telemetry;
8-
GRANT USAGE ON SCHEMA public TO telemetry;
9-
GRANT SELECT ON ALL TABLES IN SCHEMA public TO telemetry;
7+
CREATE ROLE ${POSTGRES_RO_USER:-telemetry} WITH LOGIN PASSWORD '${POSTGRES_RO_PASSWORD:-changeme}';
8+
GRANT CONNECT ON DATABASE telemetry TO ${POSTGRES_RO_USER:-telemetry};
109
EOSQL
10+
11+
# Connect to the telemetry database to set up permissions and triggers
12+
psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "telemetry" <<-EOSQL
13+
GRANT USAGE ON SCHEMA public TO ${POSTGRES_RO_USER:-telemetry};
14+
15+
-- Grant SELECT privileges on existing tables
16+
GRANT SELECT ON ALL TABLES IN SCHEMA public TO ${POSTGRES_RO_USER:-telemetry};
17+
18+
-- Set default privileges for future tables created by the postgres user
19+
ALTER DEFAULT PRIVILEGES FOR USER ${POSTGRES_USER} IN SCHEMA public GRANT SELECT ON TABLES TO ${POSTGRES_RO_USER:-telemetry};
20+
EOSQL

scripts/db_init/setup_db.sh

+11-1
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,12 @@
11
podman network create rekuper
2-
podman run --name rekuper_db --network rekuper --rm -e POSTGRES_PASSWORD=changeme -v ./init-user-db.sh:/docker-entrypoint-initdb.d/init-user-db.sh:z -p 25432:5432 postgres:17
2+
podman run \
3+
--rm \
4+
--name rekuper_db \
5+
--network rekuper \
6+
-e POSTGRES_USER=postgres \
7+
-e POSTGRES_PASSWORD=changeme \
8+
-e POSTGRES_RO_USER=telemetry \
9+
-e POSTGRES_RO_PASSWORD=fero \
10+
-v ./init-user-db.sh:/docker-entrypoint-initdb.d/init-user-db.sh:z \
11+
-p 25432:5432 \
12+
postgres:17 postgres -c log_statement=all

0 commit comments

Comments
 (0)