[ 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: