PWDCOMPARE(Transact-SQL)

암호를 해시하고 해당 해시를 기존 암호의 해시와 비교합니다. PWDCOMPARE를 사용하여 빈 SQL Server 로그인 암호 또는 일반적인 약한 암호를 검색할 수 있습니다.

항목 링크 아이콘 Transact-SQL 구문 표기 규칙

구문

PWDCOMPARE ( 'clear_text_password'
   , password_hash 
   [ , version ] )

인수

  • ' clear_text_password '
    암호화되지 않은 암호입니다. clear_text_password는 sysname(nvarchar(128))입니다.

  • password_hash
    암호의 암호화 해시입니다. password_hash는 varbinary(128)입니다.

  • version
    password_hash가 SQL Server 2005 이상으로 마이그레이션되었지만 SQL Server 2000 시스템으로 변환되지 않은 SQL Server 2000 이전의 로그인 값을 나타내는 경우 1로 설정할 수 있으며 사용되지 않는 매개 변수입니다. version은 int입니다.

    주의 사항주의

    이 매개 변수는 이전 버전과의 호환성을 위해 제공되지만 지금 암호 해시 BLOB이 해당 버전 설명을 포함하고 있으므로 무시됩니다. 이 기능은 다음 버전의 Microsoft SQL Server에서 제거됩니다. 새 개발 작업에서는 이 기능을 사용하지 말고, 현재 이 기능을 사용하는 응용 프로그램은 가능한 한 빨리 수정하십시오.

반환 형식

int

clear_text_password의 해시가 password_hash 매개 변수와 일치하면 1을 반환하고, 그렇지 않으면 0을 반환합니다.

주의

암호를 첫 번째 매개 변수로 지정하여 로그인을 시도함으로써 동일한 테스트를 수행할 수 있으므로 PWDCOMPARE 함수는 암호 해시의 강력함에 대한 위협이 되지 않습니다.

PWDCOMPARE는 포함된 데이터베이스 사용자 암호와 함께 사용할 수 없습니다. 해당하는 포함된 데이터베이스가 없습니다.

사용 권한

PWDENCRYPT는 public에 사용할 수 있습니다.

sys.sql_logins의 password_hash 열을 검사하려면 CONTROL SERVER 권한이 필요합니다.

1.암호가 없는 로그인 식별

다음 예에서는 암호가 없는 SQL Server 로그인을 식별합니다.

SELECT name FROM sys.sql_logins 
WHERE PWDCOMPARE('', password_hash) = 1 ;

2.일반적인 암호 검색

식별하여 변경할 일반적인 암호를 검색하려면 암호를 첫 번째 매개 변수로 지정합니다. 예를 들어 password로 지정된 암호를 검색하려면 다음 문을 실행합니다.

SELECT name FROM sys.sql_logins 
WHERE PWDCOMPARE('password', password_hash) = 1 ;

참고 항목

참조

PWDENCRYPT(Transact-SQL)

보안 함수(Transact-SQL)