Build 060.30: finalize Market Data Acquisition documentation
This commit is contained in:
48
infra/docker/postgres/healthcheck-application-role.sh
Normal file
48
infra/docker/postgres/healthcheck-application-role.sh
Normal file
@@ -0,0 +1,48 @@
|
||||
#!/bin/sh
|
||||
|
||||
set -eu
|
||||
|
||||
|
||||
role_status="$(
|
||||
psql \
|
||||
--no-psqlrc \
|
||||
--set ON_ERROR_STOP=1 \
|
||||
--tuples-only \
|
||||
--no-align \
|
||||
--username "$POSTGRES_USER" \
|
||||
--dbname "$POSTGRES_DB" <<'SQL'
|
||||
\getenv app_user APP_DB_USER
|
||||
|
||||
SELECT CASE
|
||||
WHEN :'app_user' <> current_user
|
||||
AND EXISTS (
|
||||
SELECT 1
|
||||
FROM pg_catalog.pg_roles
|
||||
WHERE rolname = :'app_user'
|
||||
AND rolcanlogin
|
||||
AND NOT rolsuper
|
||||
AND NOT rolcreatedb
|
||||
AND NOT rolcreaterole
|
||||
AND rolinherit
|
||||
AND NOT rolreplication
|
||||
AND NOT rolbypassrls
|
||||
)
|
||||
AND pg_catalog.pg_get_userbyid((
|
||||
SELECT datdba
|
||||
FROM pg_catalog.pg_database
|
||||
WHERE datname = current_database()
|
||||
)) = :'app_user'
|
||||
AND NOT EXISTS (
|
||||
SELECT 1
|
||||
FROM pg_catalog.pg_auth_members AS membership
|
||||
JOIN pg_catalog.pg_roles AS member_role
|
||||
ON member_role.oid = membership.member
|
||||
WHERE member_role.rolname = :'app_user'
|
||||
)
|
||||
THEN 1
|
||||
ELSE 0
|
||||
END;
|
||||
SQL
|
||||
)"
|
||||
|
||||
test "$role_status" = "1"
|
||||
Reference in New Issue
Block a user