gpt4 book ai didi

postgresql - PostgreSQL ODBC连接SSPI身份验证失败

转载 作者:行者123 更新时间:2023-11-29 13:59:20 26 4
gpt4 key购买 nike

我最近对我为公司维护的现有应用做了一些修改,试图改进一些功能。然而,我遇到了一个问题,我无法通过我所有的谷歌搜索找到任何有用的东西。这是站台:
在Windows7(64位)上运行的VB6应用程序,使用ADODB连接,通过ODBC连接到PostgreSQL(9.1.1版)服务器。
问题是,出于某种原因,我使用的SSPI身份验证方法似乎无法从PostgreSQL数据库中的序列中检索值。其他(VB.NET)应用程序使用SSPI身份验证连接到同一个数据库服务器没有问题(使用Npgsql)。
下面是VB6应用程序中用于ODBC连接的基本连接字符串:

DRIVER={PostgreSQL ANSI};Server=<SERVERNAMEHERE>;Port=<####>;Database=<DATABASENAMEHERE>;Uid=<USERNAMEHERE>

尝试连接到数据库后,当我检查PostgreSQL server日志时,发现以下错误:
CDT FATAL:  SSPI authentication failed for user "<USERNAMEHERE>"
CDT LOG: could not send data to client: No connection could be made because the target machine actively refused it.

我尝试通过PGAdmin III从另一台计算机(使用他们的凭据登录)以该用户的身份连接到数据库,我可以很好地连接。实际上,我在第二台计算机(也是Windows764位)上尝试了相同的应用程序,它似乎没有给我任何连接错误。
当然,当我在我的WinXP VM上通过VB6 IDE运行代码时(在我自己的凭据下),一切似乎都按预期工作。我验证了用户的Active Directory帐户是否处于活动状态且未锁定,PostgreSQL数据库中是否有使用正确的组角色成员身份创建的正确用户等。因此,显然,我的想法是,为PostgreSQL安装的ODBC驱动程序肯定有问题。我安装了64位PostgreSQL ODBC驱动程序,当然没有帮助。我卸载并重新安装了32位驱动程序(因为它是通过32位应用程序运行的),但没有改变。
下面是我用来连接数据库的VB6代码:
Private Function GetPGCertNumber() As Long
On Error GoTo PGSQLError

Dim PGDB As ADODB.Connection
Dim RS As ADODB.Recordset
Dim CertNum As Long
Dim SQLStr As String

Set PGDB = New ADODB.Connection
PGDB.ConnectionString = PGSQL_CONNECTION_STR
PGDB.CursorLocation = adUseServer
PGDB.Open

SQLStr = "SELECT nextval('certificatenumber_seq')"
Set RS = New ADODB.Recordset
RS.CursorLocation = adUseServer
RS.Open SQLStr, PGDB

If Not RS.EOF And Not RS.BOF Then
CertNum = RS!nextval
Else
CertNum = -1
End If

GetPGCertNumber = CertNum
RS.Close
Set RS = Nothing
PGDB.Close
Set PGDB = Nothing
Exit Function
PGSQLError:
Dim ErrorMsg As String

GetPGCertNumber = -1
ErrorMsg = "An error occurred retrieving the next certificate number to use." & vbCrLf & _
"Connection String: " & PGSQL_CONNECTION_STR & vbCrLf & _
"Command String: " & SQLStr & vbCrLf & _
"Database State: " & PGDB.State & vbCrLf & vbCrLf
MsgBox ErrorMsg, vbCritical + vbOKOnly, "POSTGRESQL DATABASE ERROR"

On Error Resume Next

If Not PGDB Is Nothing Then
If PGDB.State <> 0 Then
PGDB.Close
End If

Set PGDB = Nothing
End If
End Function

我已经检查了PostgreSQL数据库中的序列,序列没有递增。出现的错误消息表明 SQLStr变量还没有填充,这告诉我它是在调用 Open方法时发生的。
我暂时想出了一个“创可贴”的解决方案:我在PostgreSQL服务器上创建了一个新的有限访问用户,该用户使用MD5登录(在pg_hba.conf中指定)而不是SSPI,并在我的连接字符串( PGSQL_CONNECTION_STR)中硬编码。据我目前所知,这似乎是正确的,这使我进一步相信,这个问题与在这个环境中使用SSPI和用于PostgreSQL的ODBC连接器有关。
我基本上想知道是否有人知道使用PostgreSQL ODBC驱动程序通过SSPI验证到PostgreSQL数据库的连接的特定问题。我更希望不必将凭据硬编码到应用程序中,即使凭据是针对访问受限的用户的。我已经尝试了所有我知道的东西,虽然我可能没有提到上面,所以请让我知道,如果你需要任何澄清。提前谢谢你的帮助。
编辑:我唯一还没有尝试的是安装64位ODBC驱动程序,并更改连接字符串以使用它。我没有尝试的原因是我们仍然有一些用户还没有升级到64位操作系统。如果我可以通过VB6找到一种方法来确定用户是在32位操作系统上还是在64位操作系统上,那么这可能是一种可行的替代方法(假设64位ODBC驱动程序实际工作正常)。
编辑-调试日志详细信息(已编辑):
[我的日志]
[3336-0.000]calling getDSNdefaults
[3336-0.015]CC_connect: entering...
[3336-0.015]sslmode=disable
[3336-0.015]original_CC_connect: entering...
[3336-0.015]Driver Version='09.03.0300,201405140001' linking 1600 dynamic Multithread library
[3336-0.031]original_CC_connect: DSN = '', server = '<SERVERNAMEHERE>', port = '####', database = '<DATABASENAMEHERE>', username = '<USERNAMEHERE>', password=''
[3336-0.031]connecting to the server socket...
[3336-0.047](0)(null) ERRNO=0
[3336-0.047]connection to the server socket succeeded.
[3336-0.047]!!! usrname=<USERNAMEHERE> server=<SERVERNAMEHERE>
[3336-0.047]sizeof startup packet = 80
[3336-0.047]sent the authentication block successfully.
[3336-0.047]gonna do authentication
[3336-0.047]read -1, global_socket_buffersize=4096
[3336-0.047]Lasterror=10035
[3336-0.062]read 9, global_socket_buffersize=4096
[3336-0.062]auth got 'R'
[3336-0.062]areq = 9 salt=0000000000
[3336-0.062]in AUTH_REQ_SSPI
[3336-47.767][[SQLAllocHandle]][3336-47.767]PGAPI_AllocConnect: entering...
[3336-47.767]**** PGAPI_AllocConnect: henv = 02B413B8, conn = 02B481C0
[3336-47.767]EN_add_connection: self = 02B413B8, conn = 02B481C0
[3336-47.767] added at i=1, conn->henv = 02B413B8, conns[i]->henv = 02B413B8
[3336-47.767][SQLGetInfo(30)][3336-47.767]PGAPI_GetInfo: entering...fInfoType=77
[3336-47.767]PGAPI_GetInfo: p='03.50', len=0, value=0, cbMax=12
[3336-47.767][[SQLSetConnectAttr]] 103
[3336-47.767]PGAPI_SetConnectAttr for 02B481C0: 103 0000000F
[3336-47.767]PGAPI_SetConnectOption: entering fOption = 103 vParam = 15
[3336-47.767][SQLDriverConnect][3336-47.767]PGAPI_DriverConnect: entering...
[3336-47.767]**** PGAPI_DriverConnect: fDriverCompletion=0, connStrIn='DRIVER={PostgreSQL ANSI};UID=<USERNAMEHERE>;Server=<SERVERNAMEHERE>;Port=####;Database=<DATABASENAMEHERE>;debug=1;commlog=1;'
[3336-47.767]CC_conninfo_init opt=2
[3336-47.767]copy_globals driver=PostgreSQL ANSI socket_buffersize=4096
[3336-47.767]our_connect_string = 'DRIVER={PostgreSQL ANSI};UID=<USERNAMEHERE>;Server=<SERVERNAMEHERE>;Port=####;Database=<DATABASENAMEHERE>;debug=1;commlog=1;'
[3336-47.767]attribute = 'DRIVER', value = '{PostgreSQL ANSI}'
[3336-47.783]copyAttributes: DSN='',server='',dbase='',user='',passwd='',port='',onlyread='',protocol='',conn_settings='(null)',disallow_premature=-1)
[3336-47.783]attribute = 'UID', value = '<USERNAMEHERE>'
[3336-47.783]copyAttributes: DSN='',server='',dbase='',user='<USERNAMEHERE>',passwd='',port='',onlyread='',protocol='',conn_settings='(null)',disallow_premature=-1)
[3336-47.783]attribute = 'Server', value = '<SERVERNAMEHERE>'
[3336-47.783]copyAttributes: DSN='',server='<SERVERNAMEHERE>',dbase='',user='<USERNAMEHERE>',passwd='',port='',onlyread='',protocol='',conn_settings='(null)',disallow_premature=-1)
[3336-47.783]attribute = 'Port', value = '####'
[3336-47.783]copyAttributes: DSN='',server='<SERVERNAMEHERE>',dbase='',user='<USERNAMEHERE>',passwd='',port='####',onlyread='',protocol='',conn_settings='(null)',disallow_premature=-1)
[3336-47.783]attribute = 'Database', value = '<DATABASENAMEHERE>'
[3336-47.783]copyAttributes: DSN='',server='<SERVERNAMEHERE>',dbase='<DATABASENAMEHERE>',user='<USERNAMEHERE>',passwd='',port='####',onlyread='',protocol='',conn_settings='(null)',disallow_premature=-1)
[3336-47.783]attribute = 'debug', value = '1'
[3336-47.783]copyAttributes: DSN='',server='<SERVERNAMEHERE>',dbase='<DATABASENAMEHERE>',user='<USERNAMEHERE>',passwd='',port='####',onlyread='',protocol='',conn_settings='(null)',disallow_premature=-1)
[3336-47.783]attribute = 'commlog', value = '1'
[3336-47.783]copyAttributes: DSN='',server='<SERVERNAMEHERE>',dbase='<DATABASENAMEHERE>',user='<USERNAMEHERE>',passwd='',port='####',onlyread='',protocol='',conn_settings='(null)',disallow_premature=-1)
[3336-47.783]getDSNinfo: DSN= overwrite=0
[3336-47.799]our_connect_string = 'DRIVER={PostgreSQL ANSI};UID=<USERNAMEHERE>;Server=<SERVERNAMEHERE>;Port=####;Database=<DATABASENAMEHERE>;debug=1;commlog=1;'
[3336-47.799]attribute = 'DRIVER', value = '{PostgreSQL ANSI}'
[3336-47.799]copyCommonAttributes: A7=100;A8=4096;A9=0;B0=255;B1=8190;B2=0;B3=0;B4=0;B5=1;B6=0;B7=1;B8=0;B9=1;C0=0;C1=0;C2=dd_;[3336-47.799]attribute = 'UID', value = '<USERNAMEHERE>'
[3336-47.799]copyCommonAttributes: A7=100;A8=4096;A9=0;B0=255;B1=8190;B2=0;B3=0;B4=0;B5=1;B6=0;B7=1;B8=0;B9=1;C0=0;C1=0;C2=dd_;[3336-47.799]attribute = 'Server', value = '<SERVERNAMEHERE>'
[3336-47.799]copyCommonAttributes: A7=100;A8=4096;A9=0;B0=255;B1=8190;B2=0;B3=0;B4=0;B5=1;B6=0;B7=1;B8=0;B9=1;C0=0;C1=0;C2=dd_;[3336-47.799]attribute = 'Port', value = '####'
[3336-47.799]copyCommonAttributes: A7=100;A8=4096;A9=0;B0=255;B1=8190;B2=0;B3=0;B4=0;B5=1;B6=0;B7=1;B8=0;B9=1;C0=0;C1=0;C2=dd_;[3336-47.799]attribute = 'Database', value = '<DATABASENAMEHERE>'
[3336-47.799]copyCommonAttributes: A7=100;A8=4096;A9=0;B0=255;B1=8190;B2=0;B3=0;B4=0;B5=1;B6=0;B7=1;B8=0;B9=1;C0=0;C1=0;C2=dd_;[3336-47.799]attribute = 'debug', value = '1'
[3336-47.799]copyCommonAttributes: A7=100;A8=4096;A9=0;B0=255;B1=8190;B2=1;B3=0;B4=0;B5=1;B6=0;B7=1;B8=0;B9=1;C0=0;C1=0;C2=dd_;[3336-47.799]attribute = 'commlog', value = '1'
[3336-47.799]copyCommonAttributes: A7=100;A8=4096;A9=0;B0=255;B1=8190;B2=1;B3=1;B4=0;B5=1;B6=0;B7=1;B8=0;B9=1;C0=0;C1=0;C2=dd_;[3336-47.799]calling getDSNdefaults
[3336-47.799]CC_connect: entering...
[3336-47.799]sslmode=disable
[3336-47.799]original_CC_connect: entering...
[3336-47.799]Driver Version='09.03.0300,201405140001' linking 1600 dynamic Multithread library
[3336-47.799]original_CC_connect: DSN = '', server = '<SERVERNAMEHERE>', port = '####', database = '<DATABASENAMEHERE>', username = '<USERNAMEHERE>', password=''
[3336-47.799]connecting to the server socket...
[3336-47.814](0)(null) ERRNO=0
[3336-47.814]connection to the server socket succeeded.
[3336-47.814]!!! usrname=<USERNAMEHERE> server=<SERVERNAMEHERE>
[3336-47.814]sizeof startup packet = 80
[3336-47.814]sent the authentication block successfully.
[3336-47.814]gonna do authentication
[3336-47.814]read -1, global_socket_buffersize=4096
[3336-47.814]Lasterror=10035
[3336-47.830]read 9, global_socket_buffersize=4096
[3336-47.830]auth got 'R'
[3336-47.830]areq = 9 salt=0000000000
[3336-47.830]in AUTH_REQ_SSPI

[psqlobc_3380.log]日志]
[0.015]Driver Version='09.03.0300,201405140001' linking 1600 dynamic Multithread library
[0.015]Global Options: fetch=100, socket=4096, unknown_sizes=0, max_varchar_size=255, max_longvarchar_size=8190
[0.015] disable_optimizer=0, ksqo=1, unique_index=1, use_declarefetch=0
[0.015] text_as_longvarchar=1, unknowns_as_longvarchar=0, bools_as_char=1 NAMEDATALEN=64
[0.031] extra_systable_prefixes='dd_;', conn_settings='(null)' conn_encoding=''
[47.767]conn=02B481C0, PGAPI_DriverConnect( in)='DRIVER={PostgreSQL ANSI};UID=<USERNAMEHERE>;Server=<SERVERNAMEHERE>;Port=####;Database=<DATABASENAMEHERE>;debug=1;commlog=1;', fDriverCompletion=0
[47.799]Driver Version='09.03.0300,201405140001' linking 1600 dynamic Multithread library
[47.799]Global Options: fetch=100, socket=4096, unknown_sizes=0, max_varchar_size=255, max_longvarchar_size=8190
[47.799] disable_optimizer=0, ksqo=1, unique_index=1, use_declarefetch=0
[47.799] text_as_longvarchar=1, unknowns_as_longvarchar=0, bools_as_char=1 NAMEDATALEN=64
[47.799] extra_systable_prefixes='dd_;', conn_settings='(null)' conn_encoding=''

编辑-服务器日志:
这是我测试时的日志条目。这和我之前发布的几乎是一样的,但是我向前看了几分钟,考虑到连接超时等等。它来自VB6应用程序中调用存储过程的另一个函数,但它导致SSPI身份验证的相同错误/问题。
2014-06-30 16:57:17 CDT LOG:  could not receive data from client: No connection could be made because the target machine actively refused it.   
2014-06-30 16:57:17 CDT LOG: unexpected EOF on client connection
2014-06-30 16:57:30 CDT LOG: could not receive data from client: No connection could be made because the target machine actively refused it.
2014-06-30 16:57:30 CDT LOG: unexpected EOF on client connection
2014-06-30 16:57:31 CDT LOG: could not receive data from client: No connection could be made because the target machine actively refused it.
2014-06-30 16:57:31 CDT LOG: unexpected EOF on client connection
2014-06-30 16:58:38 CDT LOG: could not receive data from client: No connection could be made because the target machine actively refused it.
2014-06-30 16:58:38 CDT LOG: unexpected EOF on client connection
2014-06-30 16:59:02 CDT LOG: could not receive data from client: No connection could be made because the target machine actively refused it.
2014-06-30 16:59:02 CDT LOG: unexpected EOF on client connection
2014-06-30 16:59:22 CDT LOG: could not receive data from client: No connection could be made because the target machine actively refused it.
2014-06-30 16:59:22 CDT LOG: unexpected EOF on client connection
2014-06-30 17:00:23 CDT LOG: could not receive data from client: No connection could be made because the target machine actively refused it.
2014-06-30 17:00:23 CDT LOG: unexpected EOF on client connection
2014-06-30 17:00:44 CDT LOG: could not receive data from client: No connection could be made because the target machine actively refused it.
2014-06-30 17:00:44 CDT LOG: unexpected EOF on client connection
2014-06-30 17:00:46 CDT LOG: could not receive data from client: No connection could be made because the target machine actively refused it.
2014-06-30 17:00:46 CDT LOG: unexpected EOF on client connection
2014-06-30 17:00:52 CDT LOG: could not receive data from client: No connection could be made because the target machine actively refused it.
2014-06-30 17:00:52 CDT LOG: unexpected EOF on client connection
2014-06-30 17:01:17 CDT LOG: could not receive data from client: No connection could be made because the target machine actively refused it.
2014-06-30 17:01:17 CDT LOG: unexpected EOF on client connection
2014-06-30 17:01:43 CDT LOG: could not receive data from client: No connection could be made because the target machine actively refused it.
2014-06-30 17:01:43 CDT FATAL: SSPI authentication failed for user "<USERNAMEHERE>"
2014-06-30 17:01:43 CDT LOG: could not send data to client: No connection could be made because the target machine actively refused it.
2014-06-30 17:01:43 CDT LOG: could not receive data from client: No connection could be made because the target machine actively refused it.
2014-06-30 17:01:43 CDT FATAL: SSPI authentication failed for user "<USERNAMEHERE>"
2014-06-30 17:01:43 CDT LOG: could not send data to client: No connection could be made because the target machine actively refused it.
2014-06-30 17:03:56 CDT LOG: could not receive data from client: No connection could be made because the target machine actively refused it.
2014-06-30 17:03:56 CDT LOG: unexpected EOF on client connection
2014-06-30 17:04:02 CDT LOG: could not receive data from client: No connection could be made because the target machine actively refused it.
2014-06-30 17:04:02 CDT LOG: unexpected EOF on client connection
2014-06-30 17:04:10 CDT LOG: could not receive data from client: No connection could be made because the target machine actively refused it.
2014-06-30 17:04:10 CDT LOG: unexpected EOF on client connection
2014-06-30 17:05:30 CDT LOG: could not receive data from client: No connection could be made because the target machine actively refused it.
2014-06-30 17:05:30 CDT LOG: unexpected EOF on client connection
2014-06-30 17:05:39 CDT LOG: could not receive data from client: No connection could be made because the target machine actively refused it.
2014-06-30 17:05:39 CDT LOG: unexpected EOF on client connection
2014-06-30 17:06:33 CDT LOG: could not receive data from client: No connection could be made because the target machine actively refused it.
2014-06-30 17:06:33 CDT LOG: unexpected EOF on client connection
2014-06-30 17:11:05 CDT LOG: could not receive data from client: No connection could be made because the target machine actively refused it.
2014-06-30 17:11:05 CDT LOG: unexpected EOF on client connection
2014-06-30 17:11:50 CDT LOG: could not receive data from client: No connection could be made because the target machine actively refused it.
2014-06-30 17:11:50 CDT LOG: unexpected EOF on client connection

我可以尝试打开附加调试,但可能需要一点时间才能从中获取任何数据。当然,这个问题可能与PostgreSQL的版本有关(如您之前所建议的),只是这些相同的函数将在安装了相同ODBC连接器的32位WinXP测试环境中正常工作。
EDIT-log_min_messages=调试1:
2014-07-02 10:33:24 CDT DEBUG:  autovacuum: processing database "<DATABASENAMEHERE>"
2014-07-02 10:33:25 CDT LOG: could not receive data from client: No connection could be made because the target machine actively refused it.


2014-07-02 10:33:25 CDT FATAL: SSPI authentication failed for user "<USERNAMEHERE>"
2014-07-02 10:33:25 CDT LOG: could not send data to client: No connection could be made because the target machine actively refused it.


2014-07-02 10:33:29 CDT DEBUG: autovacuum: processing database "<DATABASENAMEHERE>"

log_min_messages=调试5
2014-07-02 10:36:49 CDT DEBUG:  StartTransaction
2014-07-02 10:36:49 CDT DEBUG: name: unnamed; blockState: DEFAULT; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
2014-07-02 10:36:49 CDT DEBUG: CommitTransaction
2014-07-02 10:36:49 CDT DEBUG: name: unnamed; blockState: STARTED; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
2014-07-02 10:36:49 CDT DEBUG: InitPostgres
2014-07-02 10:36:49 CDT DEBUG: my backend ID is 5
2014-07-02 10:36:49 CDT DEBUG: StartTransaction
2014-07-02 10:36:49 CDT DEBUG: name: unnamed; blockState: DEFAULT; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
2014-07-02 10:36:49 CDT DEBUG: CommitTransaction
2014-07-02 10:36:49 CDT DEBUG: name: unnamed; blockState: STARTED; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
2014-07-02 10:36:49 CDT DEBUG: autovacuum: processing database "<DATABASENAMEHERE>"
2014-07-02 10:36:49 CDT DEBUG: StartTransaction
2014-07-02 10:36:49 CDT DEBUG: name: unnamed; blockState: DEFAULT; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
2014-07-02 10:36:49 CDT DEBUG: pg_statistic: vac: 80 (threshold 124), anl: 560 (threshold 87)
2014-07-02 10:36:49 CDT DEBUG: pg_type: vac: 0 (threshold 112), anl: 0 (threshold 81)
2014-07-02 10:36:49 CDT DEBUG: pg_attribute: vac: 0 (threshold 651), anl: 0 (threshold 351)
2014-07-02 10:36:49 CDT DEBUG: pg_authid: vac: 19 (threshold 50), anl: 30 (threshold 50)
2014-07-02 10:36:49 CDT DEBUG: pg_proc: vac: 0 (threshold 518), anl: 0 (threshold 284)
2014-07-02 10:36:49 CDT DEBUG: pg_class: vac: 0 (threshold 106), anl: 0 (threshold 78)
2014-07-02 10:36:49 CDT DEBUG: pg_database: vac: 3 (threshold 50), anl: 7 (threshold 50)
2014-07-02 10:36:49 CDT DEBUG: pg_inherits: vac: 0 (threshold 50), anl: 0 (threshold 50)
2014-07-02 10:36:49 CDT DEBUG: pg_index: vac: 0 (threshold 72), anl: 0 (threshold 61)
2014-07-02 10:36:49 CDT DEBUG: pg_operator: vac: 0 (threshold 191), anl: 0 (threshold 121)
2014-07-02 10:36:49 CDT DEBUG: pg_opfamily: vac: 0 (threshold 64), anl: 0 (threshold 57)
2014-07-02 10:36:49 CDT DEBUG: pg_opclass: vac: 0 (threshold 73), anl: 0 (threshold 61)
2014-07-02 10:36:49 CDT DEBUG: pg_amop: vac: 0 (threshold 122), anl: 0 (threshold 86)
2014-07-02 10:36:49 CDT DEBUG: pg_amproc: vac: 0 (threshold 100), anl: 0 (threshold 75)
2014-07-02 10:36:49 CDT DEBUG: pg_language: vac: 0 (threshold 51), anl: 0 (threshold 50)
2014-07-02 10:36:49 CDT DEBUG: pg_largeobject_metadata: vac: 0 (threshold 50), anl: 0 (threshold 50)
2014-07-02 10:36:49 CDT DEBUG: pg_rewrite: vac: 0 (threshold 70), anl: 0 (threshold 60)
2014-07-02 10:36:49 CDT DEBUG: pg_description: vac: 0 (threshold 705), anl: 0 (threshold 378)
2014-07-02 10:36:49 CDT DEBUG: pg_cast: vac: 0 (threshold 89), anl: 0 (threshold 70)
2014-07-02 10:36:49 CDT DEBUG: pg_namespace: vac: 0 (threshold 51), anl: 0 (threshold 51)
2014-07-02 10:36:49 CDT DEBUG: pg_conversion: vac: 0 (threshold 76), anl: 0 (threshold 63)
2014-07-02 10:36:49 CDT DEBUG: pg_depend: vac: 0 (threshold 1219), anl: 0 (threshold 635)
2014-07-02 10:36:49 CDT DEBUG: pg_tablespace: vac: 0 (threshold 50), anl: 0 (threshold 50)
2014-07-02 10:36:49 CDT DEBUG: pg_pltemplate: vac: 0 (threshold 52), anl: 0 (threshold 51)
2014-07-02 10:36:49 CDT DEBUG: pg_auth_members: vac: 9 (threshold 75), anl: 37 (threshold 62)
2014-07-02 10:36:49 CDT DEBUG: pg_shdepend: vac: 100 (threshold 943), anl: 394 (threshold 496)
2014-07-02 10:36:49 CDT DEBUG: pg_shdescription: vac: 36 (threshold 50), anl: 42 (threshold 50)
2014-07-02 10:36:49 CDT DEBUG: pg_ts_config: vac: 0 (threshold 53), anl: 0 (threshold 52)
2014-07-02 10:36:49 CDT DEBUG: pg_ts_dict: vac: 0 (threshold 53), anl: 0 (threshold 52)
2014-07-02 10:36:49 CDT DEBUG: pg_ts_parser: vac: 0 (threshold 50), anl: 0 (threshold 50)
2014-07-02 10:36:49 CDT DEBUG: pg_ts_template: vac: 0 (threshold 51), anl: 0 (threshold 51)
2014-07-02 10:36:49 CDT DEBUG: pg_extension: vac: 0 (threshold 50), anl: 0 (threshold 50)
2014-07-02 10:36:49 CDT DEBUG: pg_foreign_data_wrapper: vac: 0 (threshold 50), anl: 0 (threshold 50)
2014-07-02 10:36:49 CDT DEBUG: pg_foreign_server: vac: 0 (threshold 50), anl: 0 (threshold 50)
2014-07-02 10:36:49 CDT DEBUG: pg_default_acl: vac: 0 (threshold 50), anl: 0 (threshold 50)
2014-07-02 10:36:49 CDT DEBUG: pg_seclabel: vac: 0 (threshold 50), anl: 0 (threshold 50)
2014-07-02 10:36:49 CDT DEBUG: pg_collation: vac: 0 (threshold 51), anl: 0 (threshold 50)
2014-07-02 10:36:49 CDT DEBUG: <TABLENAMEHERE>: vac: 0 (threshold 50), anl: 0 (threshold 50)
2014-07-02 10:36:49 CDT DEBUG: pg_attrdef: vac: 0 (threshold 50), anl: 0 (threshold 50)
2014-07-02 10:36:49 CDT DEBUG: <TABLENAMEHERE>: vac: 0 (threshold 50), anl: 0 (threshold 50)
2014-07-02 10:36:49 CDT DEBUG: pg_am: vac: 0 (threshold 51), anl: 0 (threshold 50)
2014-07-02 10:36:49 CDT DEBUG: pg_db_role_setting: vac: 0 (threshold 50), anl: 0 (threshold 50)
2014-07-02 10:36:49 CDT DEBUG: <TABLENAMEHERE>: vac: 0 (threshold 104), anl: 0 (threshold 77)
2014-07-02 10:36:49 CDT DEBUG: <TABLENAMEHERE>: vac: 0 (threshold 50), anl: 0 (threshold 50)
2014-07-02 10:36:49 CDT DEBUG: <TABLENAMEHERE>: vac: 0 (threshold 50), anl: 0 (threshold 50)
2014-07-02 10:36:49 CDT DEBUG: <TABLENAMEHERE>: vac: 0 (threshold 96), anl: 0 (threshold 73)
2014-07-02 10:36:49 CDT DEBUG: <TABLENAMEHERE>: vac: 0 (threshold 50), anl: 0 (threshold 50)
2014-07-02 10:36:49 CDT DEBUG: <TABLENAMEHERE>: vac: 0 (threshold 50), anl: 0 (threshold 50)
2014-07-02 10:36:49 CDT DEBUG: <TABLENAMEHERE>: vac: 0 (threshold 83), anl: 0 (threshold 67)
2014-07-02 10:36:49 CDT DEBUG: <TABLENAMEHERE>: vac: 0 (threshold 50), anl: 0 (threshold 50)
2014-07-02 10:36:49 CDT DEBUG: <TABLENAMEHERE>: vac: 0 (threshold 104), anl: 0 (threshold 77)
2014-07-02 10:36:49 CDT DEBUG: <TABLENAMEHERE>: vac: 0 (threshold 134), anl: 0 (threshold 92)
2014-07-02 10:36:49 CDT DEBUG: <TABLENAMEHERE>: vac: 0 (threshold 50), anl: 0 (threshold 50)
2014-07-02 10:36:49 CDT DEBUG: <TABLENAMEHERE>: vac: 0 (threshold 82), anl: 0 (threshold 66)
2014-07-02 10:36:49 CDT DEBUG: <TABLENAMEHERE>: vac: 0 (threshold 71), anl: 0 (threshold 61)
2014-07-02 10:36:49 CDT DEBUG: <TABLENAMEHERE>: vac: 0 (threshold 50), anl: 0 (threshold 50)
2014-07-02 10:36:49 CDT DEBUG: <TABLENAMEHERE>: vac: 0 (threshold 80), anl: 0 (threshold 65)
2014-07-02 10:36:49 CDT DEBUG: <TABLENAMEHERE>: vac: 0 (threshold 50), anl: 0 (threshold 50)
2014-07-02 10:36:49 CDT DEBUG: <TABLENAMEHERE>: vac: 0 (threshold 50), anl: 0 (threshold 50)
2014-07-02 10:36:49 CDT DEBUG: <TABLENAMEHERE>: vac: 0 (threshold 826), anl: 0 (threshold 438)
2014-07-02 10:36:49 CDT DEBUG: CommitTransaction
2014-07-02 10:36:49 CDT DEBUG: name: unnamed; blockState: STARTED; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
2014-07-02 10:36:49 CDT DEBUG: shmem_exit(0): 8 callbacks to make
2014-07-02 10:36:49 CDT DEBUG: proc_exit(0): 2 callbacks to make
2014-07-02 10:36:49 CDT DEBUG: exit(0)
2014-07-02 10:36:49 CDT DEBUG: shmem_exit(-1): 0 callbacks to make
2014-07-02 10:36:49 CDT DEBUG: proc_exit(-1): 0 callbacks to make
2014-07-02 10:36:49 CDT DEBUG: reaping dead processes
2014-07-02 10:36:49 CDT DEBUG: server process (PID 5692) exited with exit code 0
2014-07-02 10:36:51 CDT LOG: could not receive data from client: No connection could be made because the target machine actively refused it.


2014-07-02 10:36:51 CDT FATAL: SSPI authentication failed for user "<USERNAMEHERE>"
2014-07-02 10:36:51 CDT LOG: could not send data to client: No connection could be made because the target machine actively refused it.


2014-07-02 10:36:51 CDT DEBUG: shmem_exit(1): 7 callbacks to make
2014-07-02 10:36:51 CDT DEBUG: proc_exit(1): 3 callbacks to make
2014-07-02 10:36:51 CDT DEBUG: exit(1)
2014-07-02 10:36:51 CDT DEBUG: shmem_exit(-1): 0 callbacks to make
2014-07-02 10:36:51 CDT DEBUG: proc_exit(-1): 0 callbacks to make
2014-07-02 10:36:51 CDT DEBUG: reaping dead processes
2014-07-02 10:36:51 CDT DEBUG: server process (PID 4300) exited with exit code 1

最佳答案

你检查过你的登录名“USERNAMEHERE”的情况吗?
windows和pgsql上的登录名必须相同。
我们甚至有一个问题,windows登录名是“usera”,pgsql登录名是“usera”,但通过odbc发送的登录名是“usera”。
windows似乎采用了以前登录时使用的用户名,而不是广告中定义的用户名。
我们必须手动修复这个连接字符串。
否则,不需要硬编码登录,可以在pg_hba.conf中使用映射(请参见http://www.postgresql.org/docs/9.4/static/auth-username-maps.html

关于postgresql - PostgreSQL ODBC连接SSPI身份验证失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24453614/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com