PWDCOMPARE(Transact-SQL)
적용 대상: SQL Server Azure SQL 데이터베이스 Azure SQL Managed Instance
암호를 해시하고 해당 해시를 기존 암호의 해시와 비교합니다. PWDCOMPARE를 사용하여 빈 SQL Server 로그인 암호 또는 일반적인 약한 암호를 검색할 수 있습니다.
구문
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(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 ;