I used sudo su postgres
and set up my database while logged in as the linux user postgres
. After exiting to my normal shell, logged in as my non-root user, I can simply use psql -U postgres
and then do whatever I want with any database, Postgres user, etc. Is this normal, and does it pose a security risk?
1 Answer
Sounds like your pg_hba.conf
is set to trust
for local
connections. If you trust your local users, that's not too bad, though I don't think it's ever a great idea for production.
Make really sure that trust
isn't set for host
(network) connections - it's sort-of OK to allow trust
for 127.0.0.1 but it's something I'd only actually consider doing for a test setup, never for production. You should be using md5
password auth or a strong security mechanism like certificate auth, Kerberos, etc for network clients.
-
Excellent! Thanks, Craig - I'll use md5, since the server is only accessible in a private network. What would you say to my question posed above in the OP comments? Dec 15, 2012 at 3:49
-
1@orokusaki It depends on whether or not you trust your local users (and the security of the host system to prevent an illicit login) -- Generally as Craig said I would not do this in production.– voretaq7Dec 15, 2012 at 3:54
pg_hba.conf
say?all
in thelocal
to readpostgres
instead?