PWDCOMPARE(Transact-SQL)

적용 대상:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

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

Transact-SQL 구문 규칙

Syntax

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

참고 항목

SQL Server 2014(12.x) 및 이전 버전에 대한 Transact-SQL 구문을 보려면 이전 버전 설명서를 참조 하세요.

인수

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

password_hash
암호의 암호화 해시입니다. password_hashvarbinary(128)입니다.

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

주의

이 매개 변수는 이전 버전과의 호환성을 위해 제공되지만 지금 암호 해시 BLOB이 해당 버전 설명을 포함하고 있으므로 무시됩니다. 이 기능은 이후 버전의 SQL Server에서 제거됩니다. 새 개발 작업에서는 이 기능을 사용하지 않도록 하고, 현재 이 기능을 사용하는 애플리케이션은 수정하세요.

반환 형식

int

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

설명

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

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

사용 권한

PWDENCRYPT는 누구나 사용할 수 있습니다.

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

예제

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

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

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

B. 일반적인 암호 검색

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

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

참고 항목

PWDENCRYPT(Transact-SQL)
보안 함수(Transact-SQL)