-- Create new database (owned by the user)
CREATE DATABASE amdb OWNER <username>;
-- Connect to the database
\c amdb;
-- Grant monitoring role
GRANT pg_monitor TO <username>;
-- Grant backup functions
GRANT EXECUTE ON FUNCTION pg_backup_start(text) TO <username>;
GRANT EXECUTE ON FUNCTION pg_backup_stop() TO <username>;
-- Grant schema privileges
GRANT ALL ON SCHEMA public TO <username>;
-- Set default privileges for future objects
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL ON TABLES TO <username>;
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL ON SEQUENCES TO <username>;
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL ON FUNCTIONS TO <username>;
-- Create required extensions
CREATE EXTENSION IF NOT EXISTS pgcrypto;
CREATE EXTENSION IF NOT EXISTS citext;
CREATE EXTENSION IF NOT EXISTS pg_stat_statements;
CREATE EXTENSION IF NOT EXISTS amcheck;