[ psqlodbc-Bugs-1000519 ] Does not pick up default username - Mailing list pgsql-odbc

From
Subject [ psqlodbc-Bugs-1000519 ] Does not pick up default username
Date
Msg-id 20060428083128.2960F86C509@pgfoundry.org
Whole thread Raw
List pgsql-odbc
Bugs item #1000519, was opened at 2006-01-05 11:53
You can respond by visiting:
http://pgfoundry.org/tracker/?func=detail&atid=538&aid=1000519&group_id=1000125

Category: None
Group: None
>Status: Closed
Resolution: Accepted
Priority: 3
Submitted By: Magnus Hagander  (mha)
Assigned to: Ludek Finstrle (luf)
Summary: Does not pick up default username

Initial Comment:
To use ODBC with Kerberos authentication, the connection needs to pick up the current username from the logged in user
anduse that for authentication. For normal libpq connections, this works fine if you just skip specifying the username
completely.For ODBC connection, it crashes. Example vbscript: 

set conn = CreateObject("ADODB.Connection")
conn.Open "Driver={PostgreSQL UNICODE};DATABASE=admin;SERVER=server.domain.se"

This gives me the error:
H:\t2.vbs(2, 1) Microsoft OLE DB Provider for ODBC Drivers: Operation was canceled.


If I specify the username (mha) with "uid=mha", it works.


A workaround is possible when connectingl ike above, because I can have my vbscript determine the userid and pass it
along.But it's not possible with software using a global DSN that expect integrated login to work the same way as for
SQLServer.

----------------------------------------------------------------------

>Comment By: Dave Page  (dpage)
Date: 2006-04-28 08:31

Message:
This is resolved in the new codebase.

----------------------------------------------------------------------

Comment By: Magnus Hagander  (mha)
Date: 2006-01-08 12:01

Message:
Oh, I'm sorry I missed to say this in my original post - I
have already worked around this in my current case by
modifying the scripts that connect to ODBC. So I'm not in
need of an urgent fix, but it's something that should be
fixed for a future version.

trust should not need a username either, when connecting
with libpq. Libpq will automatically pick up the current
username when none is specified. See pg_fe_getauthname() in
http://developer.postgresql.org/cvsweb.cgi/pgsql/src/interfaces/libpq/fe-auth.c?rev=1.110

(However, if you explicitly set username="", that's
obviously not going to work, so that could be the problem)

For example, I can do a libpq
PQconnectdb("server=my.server.domain") and nothing more.

----------------------------------------------------------------------

Comment By: Ludek Finstrle (luf)
Date: 2006-01-08 09:12

Message:
I attach patch which solve the problem. But it breaks SQLDriverConnect with SQL_DRIVER_COMPLETE option when there is
usedanother auth method. So it isn't complete. If you need you can use it as quick hack. I have to talk about it with
otherdevelopers. 

I hope it works. I'm unable to test it becouse trust auth method needs filled username (PgSQL have to know which user
login - I assume) 

----------------------------------------------------------------------

Comment By: Magnus Hagander  (mha)
Date: 2006-01-07 17:48

Message:
I think you should be able to reproduce the same problem
when using trust authentication. Just make sure you never
specify a username in the script connecting.

Log file for a run is attached. In order to enable logging,
I created a DSN called "pgtest" with:
data source: pgtest
description: <blank>
database: postgres
sslmode: prefer
server: my.server.domain
port: 5432
user name: <blank>
password: <blank>

All other options are per default.




----------------------------------------------------------------------

Comment By: Ludek Finstrle (luf)
Date: 2006-01-05 19:41

Message:
I have no kerberos here. So I can't reproduce the problem.
I need you attach mylog output for unsuccessful login.

----------------------------------------------------------------------

You can respond by visiting:
http://pgfoundry.org/tracker/?func=detail&atid=538&aid=1000519&group_id=1000125

pgsql-odbc by date:

Previous
From:
Date:
Subject: [ psqlodbc-Bugs-1000475 ] SEGFAULT during SQLCancel
Next
From: Hiroshi Inoue
Date:
Subject: Re: PG 8 INOUT parameters & ADO