первый же день положил БД кривым запросом... (сделал кривое соединение, которое сожрало всю память) ...есть ли возможность в постгресе как-то ограничить некоторых пользователей?
нет, от этого ты не убережёшься. Даже чтением можно сожрать ресурсы.
Неужели нет системы защиты от перегрузок?
Во-первых, таймауты. См. statement_timeout, idle_in_transaction_session_timeout и, возможно, idle_session_timeout и lock_timeout. Во-вторых, можно в какой-то степени "зарезать" ресурсы — см. temp_file_limit, work_mem, max_parallel_workers_per_gather, temp_buffers и hash_mem_multiplier, например. В-третьих, можно попробовать подойти со стороны OS, см. https://www.postgresql.org/message-id/1182.1486568664@sss.pgh.pa.us и https://www.cybertec-postgresql.com/en/linux-cgroups-for-postgresql/, например.
Обсуждают сегодня