Default Postgres privileges not showing on \ddp
According to the documentation, PostgreSQL does the following for PUBLIC:


  PostgreSQL grants privileges on some types of objects to PUBLIC by
  default when the objects are created. No privileges are granted to
  PUBLIC by default on tables, table columns, sequences, foreign data
  wrappers, foreign servers, large objects, schemas, or tablespaces. For
  other types of objects, the default privileges granted to PUBLIC are
  as follows: CONNECT and TEMPORARY (create temporary tables) privileges
  for databases; EXECUTE privilege for functions and procedures; and
  USAGE privilege for languages and data types (including domains).


This implies that to prevent a new user to be able to connect to any database following must be run for each database:

revoke connect on database &lt;db_name&gt; from public;