webForumDet fria alternativet

Skifteslägeskänsligt?

Databaser & SQL

10 svar · 553 visningar · startad av Jesper T

Medlem sedan nov. 20017 144 inlägg
Frågan#1

Varför funkar inte denna?
Tar jag bort konverteringen så funkar det men då blir inte lösenordet skifteslägeskänsligt.

ALTER PROCEDURE adv_checklogin
	( 
		@username varchar(50),
		@password varchar(50)
	)

AS

SELECT id, oname, uname FROM adv WHERE cast(password as binary) = @password AND username=@username

RETURN
Medlem sedan nov. 20017 144 inlägg
#2

Nu har jag gått på info ifrån: http://www.microsoft.com/sql/techinfo/tips/administration/casesensitive.asp
Men då returneras inget.

Medlem sedan dec. 200012 464 inlägg
#3

Jag testade enligt länken och det fungerade utmärkt.

Medlem sedan nov. 20017 144 inlägg
#4

Vad sjuttongubbar kan det vara då?
Tar jag bort cast() så träffar den alltid oavsätt skiftesläge.
Lägger jag till cast() så träffar den aldrig oavsätt skiftesläge. :q
Jag har även testat med en vanlig sql med samma fenomen.

Medlem sedan dec. 200012 464 inlägg
#5

Då får du väl posta lite tabelldefinitioner, exempeldata och din kod.

Medlem sedan nov. 20017 144 inlägg
#6

Datatyperna är både i username och password varchar(50)

ALTER PROCEDURE adv_checklogin

AS
DECLARE @username varchar(50)
DECLARE @password varchar(50)

SET @username = 'Arne'
Set @password = 'LoSeNoRd'

	SELECT id, oname, uname FROM adv WHERE cast(password as binary)=@password AND username=@username

RETURN

Detta genererar samma sak -> nada.

Medlem sedan nov. 20017 144 inlägg
#7

Kan tillägga att id är bigint, oname och uname är båda varchar(255)

Medlem sedan dec. 200012 464 inlägg
#8
SELECT id, oname, uname FROM adv 
WHERE cast(password as binary)=cast(@password as binary)
Medlem sedan nov. 20017 144 inlägg
#9

Ja det var ju som i microsoftexemplet...utan resultat.
Nu har jag testat lokalt i databasen och det funkar med exakt det du skrev Lars. Men på webbhotellet klickar det fast det är samma tabellnamn, samma SP och samma kolumner med samma datatyp.

Vad är detta?

Medlem sedan nov. 20017 144 inlägg
#10

Här kvarstår min fråga.
Hur kan man göra för att utesluta att databasen är 100% fuc-ed up? ...eller var det jag ;)

Medlem sedan nov. 20017 144 inlägg
#11

Detta verkade göra susen, fråga mig inte varför det funkade med convert och inte cast

SELECT id, oname, username FROM advertisers WHERE convert(binary, password)=convert(binary, @passw) AND username=@usern
255 ms totalt · 4 externa anrop · v20260731065814-full.e96017d9
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)