2011-11-15 13 views
0

私は新しいログインアカウントを挿入したときしかし、私は新しいログインユーザ名はdoesnの天気をチェックしたいENCRYPTBYPASSPHRASE暗号化されたユーザ名がSQLデータベースに存在するかどうかの確認

を使用して暗号化されたユーザ名とパスワードの両方を持つログインと呼ばれるテーブルを持っています」すでに存在しています。

ユーザー名が既にデータベースに存在することを確認するにはどうすればよいですか?

私はselect * from login where username = encryptbypassphrase('username', 'passphrase')のようなものを試しましたが、それは否定的でした。

+0

私は、ユーザー名とパスフレーズを交換する必要があると思う: '選択*名= encryptbypassphrase(「パスフレーズ」、「ユーザ名は」)'を参照してくださいログインからの:http://technet.microsoft.com/en-us/library/ms190357.aspx –

+0

あなたはそれについて正しいです、ありがとう。しかし、この例/質問では、同じ暗号化を挿入して、ユーザーが存在するかどうかを確認するため、問題はありません。 –

+0

encryptopnの結果をどのフィールドに保存しますか? –

答えて

0

私はこれらのようなものを使用することが期待される:

--- For INSERT 
insert into login 
    (username, encryptedphrase) 
values 
    ('username', encryptbypassphrase('username', 'passphrase')) 

--- Checking a specific username, passphrase combination: 
select * 
from login 
where username = 'username' 
    and encryptedphrase = 
     encryptbypassphrase(username, 'passphrase') 

--- Checking if a specific username already exists: 
select exists 
     (select * 
     from login 
     where username = 'username' 
     ) userexists 
+0

ユーザー名は暗号化されています。つまり、 "username = 'username'"は機能しません。 –

+0

したがって、 'encryptbypassphrase( 'username'、 'passphrase')'だけを実際に格納しますか? –

関連する問題