At the SQL level, every user can indeed connect to a newly created database, until the following SQL command is issued:
REVOKE connect ON DATABASE database_name FROM PUBLIC;
Once done, each user or role that should be able to connect has to be granted explicitly the connect privilege:
GRANT connect ON DATABASE database_name TO rolename;
Edit:
In a multi-tenant scenario, more than just the connect
privilege would be removed. For multi-tenancy tips and best practices, you may want to read on the postgresql public wiki: Shared Database Hosting and Managing rights in PostgreSQL.