#10063 closed (fixed)
postgres dbshell asks for password even though I have .pgpass
Reported by: | Owned by: | nobody | |
---|---|---|---|
Component: | Core (Management commands) | Version: | dev |
Severity: | Keywords: | dbshell postgres psql password | |
Cc: | Carl Meyer | Triage Stage: | Accepted |
Has patch: | yes | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description
When running manage.py dbshell for a postgresql, one has to enter ones password for psql even when you have a proper .pgpass file set up.
For mysql, the password is supplied on the command line, for psql it is not.
According to this ticket here ( http://code.djangoproject.com/ticket/7554 ) the reason is that psql does not allow the password to be supplied on the command line. That conclusion is wrong as you can see in the attached patch (
django_psql_pass_nonsolution.patch ).
Unfortunately however, psql does not zero out it's command line arguments like mysql does. Therefore I do not recommend the patch. I do however recommend the first part ( django_psql_pass_fix.patch ) that removes the -W option. According to the psql manual, using the -W option is never necessary, and in this case it disables the .pgpass functionality.
"""This option is never essential, since psql will automatically
prompt for a password if the server demands password authenti‐
cation. However, psql will waste a connection attempt finding
out that the server wants a password. In some cases it is
worth typing -W to avoid the extra connection attempt.""" (psql manual)
(P.S. Actually, supplying the password in the mysql case is also a security risk, as the password argument can be captured if the attacker is quick enough. But that's a different discussion.)
Attachments (2)
Change History (8)
by , 16 years ago
Attachment: | django_psql_pass_nonsolution.patch added |
---|
by , 16 years ago
Attachment: | django_psql_pass_fix.patch added |
---|
do not ask for postgres dbshell password when not necessary
comment:1 by , 16 years ago
Cc: | added |
---|
comment:2 by , 16 years ago
Cc: | added; removed |
---|
comment:3 by , 16 years ago
milestone: | → 1.1 |
---|---|
Triage Stage: | Unreviewed → Accepted |
comment:4 by , 16 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
auto-enter postgres password for dbshell