Re: Case sensitivity
От | Stephan Szabo |
---|---|
Тема | Re: Case sensitivity |
Дата | |
Msg-id | 049201bfe6c5$3fec4da0$0c64010a@kick.com обсуждение исходный текст |
Ответ на | Case sensitivity (Brian Piatkus <brian@brianp.demon.co.uk>) |
Список | pgsql-hackers |
You haven't given the hba.conf entry you are using, so I'm assuming you're using ident with the sameuser usermap. You can create mixed case names by double quoting the name (as mentioned by Tom Lane) Or, if you're using both unix and NT machines so the names come out differently for the same users, you might be able to get away with just using a usermap file. If you really didn't feel like making and keep the usermap up to date, you might want to look at how the sameuser usermap is defined and make an equivalent that did what you wanted (or do case insensitive matches), probably something like [not at all tested or even tried to compile]: else if (strcmp(usermap_name, "caseless_sameuser")) == 0) { if (strcasecmp(ident_username, pguser) == 0) *checks_out_p = true; else *check_out_p = false; } I think the changes below are a bit drastic and make sure that noone will ever be able to use mixed case names with it and also are assuming that the usernames can't contain any characters that might get translated by the |= that aren't A-Z. ----- Original Message ----- From: "Brian Piatkus" <brian@brianp.demon.co.uk> To: <pgsql-hackers@postgresql.org> Sent: Tuesday, July 04, 2000 1:37 PM Subject: [HACKERS] Case sensitivity > There seems to be a general issue here with usernames. > > PG creates only lower case usernames. I am happy that if usEr can't type, it's > his problem but I have a definite problem with Identd authentication from an NT > client (or ident server whichever you choose ) which insists on pretty-printing > the identd response. > > I have therefore hacked my code in auth.c. This seems to be of no other > consequence but I am not a C programmer nor did I have time to check it out > elsewhere. > > I may be masking another, more general, issue but this does for me ! Can we get > it or equivalent in future releases please ? > > Regards. > > BTW The actaul code works - this is a cut&paste. > > *--------------------------------------------------------------------------- > Talk to the ident server on the remote host and find out who owns the > connection described by "port". Then look in the usermap file under > the usermap *auth_arg and see if that user is equivalent to > Postgres user *user. > > Return STATUS_OK if yes. > -------------------------------------------------------------------------- -*/ > bool checks_out; > bool ident_failed; > > /* We were unable to get ident to give us a username */ > char ident_username[IDENT_USERNAME_MAX + 1]; > !!!!!!!!! char* c = ident username; > > > > /* The username returned by ident */ > > ident(raddr->sin_addr, laddr->sin_addr, > raddr->sin_port, laddr->sin_port, > &ident_failed, ident_username); > > if (ident_failed) > return STATUS_ERROR; > > ||||||| while (*c) { *c++ |= 0x20;} > > verify_against_usermap(postgres_username, ident_username, auth_arg, > &checks_out); > > return checks_out ? STATUS_OK : STATUS_ERROR; > } >
В списке pgsql-hackers по дате отправления:
Предыдущее
От: darcy@druid.net (D'Arcy J.M. Cain)Дата:
Сообщение: Re: Repair plan for inet and cidr types