J'ai besoin de savoir dans quel fichier SQL Server 2008 stocke réellement les mots de passe. C'est une question posée par un auditeur de sécurité.
Je sais que je peux obtenir des coups de passe avec LOGINPROPERTY('bbellomo', 'PasswordHash')
, mais cela ne m'aidera pas; J'ai besoin de savoir comment ils sont stockés.
Les mots de passe ne sont pas stockés en plainte. Si l'auditeur a vraiment besoin du fichier dans lequel ils sont stockés, signalez-les au fichier Master.MDF. Ceci est bien sûr pour les connexions SQL. Pour les connexions Windows, SQL ne sait même pas ce que le mot de passe est; Active Directory gère l'authentification.
Essayez d'examiner sys.server_principals
Les noms d'utilisateur et les mots de passe sont dans la base de données master
. Mais les mots de passe ne sont pas stockés en clairexuant.
Le plan d'exécution de 'Select Mot de passe à partir de syslogins' montre que les mots de passe sont stockés dans sys.sysxlgns
Dans la base de données principale.
Jetez un coup d'œil à: tables de base système
Voici les mots de passe, dans les seuls formats SQL Server les montrera à nous:
SELECT name, password, LOGINPROPERTY(name, 'PasswordHash' ) hash
FROM syslogins
WHERE password IS NOT NULL
ORDER BY name
Vous pouvez probablement convertir facilement entre les formats, mais je ne sais pas à la main de la main.