Skip to Content.
Sympa Menu

freetds - Re: long password issues

freetds AT lists.ibiblio.org

Subject: FreeTDS Development Group

List archive

Chronological Thread  
  • From: James K. Lowden <jklowden AT speakeasy.org>
  • To: "TDS Development Group" <freetds AT franklin.oit.unc.edu>
  • Subject: Re: long password issues
  • Date: Tue, 20 Aug 2002 22:20:01 -0400


On Tue, 20 Aug 2002 18:35:03 -0400, "Blake Nyquist"
<blake.nyquist AT voyager.net> wrote:

> After some poking around, we believe there is a limitation on sending a
> password greater than 27 characters in length. Does anyone know if this
> is a limitation on FreeTDS's part, DBD::Sybase's part, or some other
> piece of the puzzle?

Blake,

Here's one clue, in tds.h:

#define TDS_MAX_LOGIN_STR_SZ 30
typedef struct tds_login {
TDS_CHAR host_name[TDS_MAX_LOGIN_STR_SZ+1];
TDS_CHAR user_name[TDS_MAX_LOGIN_STR_SZ+1];
TDS_CHAR password[TDS_MAX_LOGIN_STR_SZ+1];
...

Probably this and several other "char(30)" choices reflect TDS 5.0 as
defined by Sybase. I should add that to the list of known issues.

> Are there any known solutions or work-arounds? The 32-character
> password can be used through M$'s query analyzer tool just fine, so the
> database itself doesn't seem to have any problems with the longer
> password.

The engineering approach would be to spend some time with tcpdump and
figure out what the protocol does to send passwords greater than 30
characters. (It might not be any more complicated than simply sending the
*whole* password!) The whattheheck approach would be to change the
structure definition (in tds.h.in), re-./configure, and see what happens.
Joy of open source, you heard it here first. ;)

I don't remember this issue coming up before. There is some interest in
allowing for tablenames and such >30 characters, but no one working on the
problem as yet.

> I was wondering if Perl's DBD::ODBC module would fix the problem, but I
> haven't had luck in successfully installing that module with FreeTDS. If
>
> anyone has a thorough how-to for getting that setup correctly, that
> would also be a huge help (even if it doesn't fix this problem)!!!

DBD::Sybase is the way to go.

> Any assistance would be greatly appreciated!

A quick check of the source code suggests you could use any value for the
length of tds_login.password. Please set it to whatever MS says the max
password length is, rebuild, and let us know how you fare.

Be advised that the password cannot include embedded nulls. That would
probably trip up perl, and it would definitely not work with FreeTDS.

Regards,

--jkl




Archive powered by MHonArc 2.6.24.

Top of Page