Disallow superusers and single-user mode in POSTGRESQL
You will find that you need superuser access for certain tasks, e.g. CREATE EXTENSION.

Vieving database metadata is not a security problem. Just because you know that there is a column with credit card data doesn't get you any closer to accessing it.

There is no way to keep somebody with shell access as PostgreSQL OS user from doing anything they want. Whoever can read the data files has access to all information.

Rather than spending effort on breaking PostgreSQL, invest in proper security:


Restrict shell access to the database machine.
Don't allow remote superuser access.
Encrypt connections.
Use an external, centralized authentication provider.
Grant object permissions as restrictive as possible.