I have 2 users whose logins always fail but all other users have no issue. One of the users logged into a server and attempted the connection and received the same issue. Other users accessing the database from that server have no issues. This rules out the client and the network and points to an issue with the user.
The SQL error log shows:
The login packet used to open the connection is structurally invalid; the connection has been closed. Please contact the vendor of the client library. [CLIENT: 10.123.10.64]
Error: 17832, Severity: 20, State: 8.
Instance and Server info:
SQL Version - 10.0.1600.22
Patch Level - RTM
Version Info - Microsoft SQL Server 2008 (RTM) - 10.0.1600.22 (X64)
Jul 9 2008 14:17:44
Copyright (c) 1988-2008 Microsoft Corporation
Enterprise Edition (64-bit) on Windows NT 5.2 <X64> (Build 3790: Service Pack 2)
Authentication - Mode Mixed
Clustering - Clustered
Full Text Feature - Full Text is Installed
When looking at connectivity help via the ring buffer using the following SQL I get
SELECT CAST(record AS XML) XML_record
FROM sys.dm_os_ring_buffers
WHERE ring_buffer_type = 'RING_BUFFER_CONNECTIVITY'
<Record id="333" type="RING_BUFFER_CONNECTIVITY" time="642512072">
<ConnectivityTraceRecord>
<RecordType>Error</RecordType>
<RecordSource>Tds</RecordSource>
<Spid>0</Spid>
<SniConnectionId>A9676270-C42C-4ED4-9148-0CA70BEBEDEA</SniConnectionId>
<OSError>0</OSError>
<SniConsumerError>17832</SniConsumerError>
<SniProvider>7</SniProvider>
<State>8</State>
<RemoteHost>10.123.10.64</RemoteHost>
<RemotePort>2840</RemotePort>
<LocalHost>10.149.70.142</LocalHost>
<LocalPort>2132</LocalPort>
<RecordTime>12/5/2012 16:11:33.115</RecordTime>
<TdsBuffersInformation>
<TdsInputBufferError>0</TdsInputBufferError>
<TdsOutputBufferError>0</TdsOutputBufferError>
<TdsInputBufferBytes>4017</TdsInputBufferBytes>
</TdsBuffersInformation>
<TdsDisconnectFlags>
<PhysicalConnectionIsKilled>0</PhysicalConnectionIsKilled>
<DisconnectDueToReadError>0</DisconnectDueToReadError>
<NetworkErrorFoundInInputStream>0</NetworkErrorFoundInInputStream>
<ErrorFoundBeforeLogin>1</ErrorFoundBeforeLogin>
<SessionIsKilled>0</SessionIsKilled>
<NormalDisconnect>0</NormalDisconnect>
</TdsDisconnectFlags>
</ConnectivityTraceRecord>
<Stack>
<frame id="0">0X00000000028A4FC9</frame>
<frame id="1">0X0000000002929C62</frame>
<frame id="2">0X00000000020C5E58</frame>
<frame id="3">0X000000000140DA8D</frame>
<frame id="4">0X0000000001411E86</frame>
<frame id="5">0X0000000001012ABB</frame>
<frame id="6">0X0000000001010FDA</frame>
<frame id="7">0X0000000001012665</frame>
<frame id="8">0X00000000015BABB0</frame>
<frame id="9">0X00000000015BC4B0</frame>
<frame id="10">0X00000000015BA060</frame>
<frame id="11">0X00000000015BA9EF</frame>
<frame id="12">0X00000000781337D7</frame>
<frame id="13">0X0000000078133894</frame>
<frame id="14">0X0000000077D6B71A</frame>
<frame id="15">0000000000000000</frame>
</Stack>
</Record>
Anyone any ideas where to look next?