Παρόλο που κανένας σώφρων επαγγελματίας δεν αφήνει sql logins με blank password δυστυχώς υπάρχουν κάποιοι που κάνουν κάτι τέτοιο.
Όταν με φωνάζουν να κοιτάξω έναν SQL Server τρέχω διάφορα queries για να μπορέσω να καταλάβω σε τι θα μπλέξω και τι ανακόντα θα βρω μπροστά μου.
Ένα από αυτά που τρέχω είναι το παρακάτω το οποίο μου δείχνει αν κάποιο sql login έχει blank password και αν είναι ενεργοποιημένο ή όχι.
Σε αυτό κάνω χρήση μιας όσο και τόσο γνωστής (δυστυχώς) function της
PWDCOMPARE
Απλά τρέξετε το και κάντε κάτι για αυτό γιατί είναι αμαρτία να είστε βορά σε κάθε κακόβουλο. Επίσης αυτό είναι κάτι που αποτρέπεται by default με το enforce password policy και δεν μπορώ να καταλάβω γιατί κάποιος το βγάζει σε παραγωγικό περιβάλλον.
select name
, is_disabled
, case PWDCOMPARE('',password_hash)
when 0 then 'No'
when 1 then 'Yes'
end as has_blank_password
from sys.sql_logins
name is_disabled has_blank_password
---------------------------------------- ----------- ------------------
sa 0 No
##MS_PolicyTsqlExecutionLogin## 1 No
u1 0 No
##MS_PolicyEventProcessingLogin## 1 No
mitsos 0 Yes