- ai postgresql
- systemctl status postgresql
- /etc/postgresql/15/main/pg_hba.conf
psql
- LANG=C
- psql -U postgres -c "SELECT datname FROM pg_catalog.pg_database;"
- psql -U postgres -c "DROP DATABASE DBNAME;"
- psql -U postgres -c "SELECT * FROM pg_catalog.pg_user;"
- psql -U postgres -c "REVOKE USAGE ON SCHEMA public FROM DBUSERNAME;"
- psql -U postgres -c "DROP USER DBUSERNAME;"
create_db.sh
#!/bin/bash
# Script Version: 01
# Creates a PostgreSQL database and user with read-only permissions
export LANG=C # Ensure consistent locale
read -e -p "Name der Datenbank (und Benutzer): " NAME
DB="$NAME"
USER="$NAME"
# Generate password with OpenSSL
PASS=$(openssl rand -hex 16)
echo "📦 Erstelle Datenbank: $DB"
echo "👤 Erstelle Benutzer: $USER"
echo "🔐 Generiertes Passwort: $PASS"
psql -U postgres -c "CREATE DATABASE $DB;"
psql -U postgres -c "CREATE USER $USER WITH PASSWORD '$PASS';"
psql -U postgres -c "REVOKE ALL ON DATABASE $DB FROM PUBLIC;"
psql -U postgres -c "GRANT CONNECT ON DATABASE $DB TO $USER;"
psql -U postgres -d $DB -c "GRANT USAGE ON SCHEMA public TO $USER;"
psql -U postgres -d $DB -c "GRANT SELECT ON ALL TABLES IN SCHEMA public TO $USER;"
psql -U postgres -d $DB -c "ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON TABLES TO $USER;"
echo "✅ Datenbank '$DB' und Benutzer '$USER' wurden mit Lesezugriff erstellt."
echo "🔑 Passwort: $PASS"