"James Dietrich" <jdietrch@gmail.com> writes:
> Why does user2 still have create privilege on schema public?
You revoked that privilege in database postgres, which has little to
do with its state in any other database (and certainly not in template1
which is what you cloned to make db1).
regards, tom lane