2 votes

Sql Server - Erreur d'attachement d'un fichier mdf crypté via le système de fichiers cryptés (EFS)

J'obtiens une erreur en essayant de joindre une base de données dont les fichiers ont été précédemment cryptés via EFS. Le message d'erreur actuel est le suivant

Msg 5120, Level 16, State 101, Line 9
Unable to open the physical file "C:\test.mdf". Operating system error 5: "5(Access is denied.)".

Si je décrypte les fichiers, alors je peux attacher la base de données avec succès. J'utilise le même compte utilisateur local que celui qui exécute le service sqlserver. Avez-vous des idées ? (J'avais déjà posé cette question sur stackoverflow, mais j'ai reçu des commentaires indiquant qu'elle devait être posée ici).

3voto

nOw2 Points 276

Êtes-vous sûr que le compte de service que vous utilisez pour SQL Server correspond au compte utilisateur que vous utilisez pour crypter les fichiers ? EFS est géré par le système d'exploitation et est transparent pour SQL Server.

Si c'est le cas, vérifiez les permissions générales NTFS, assurez-vous que le compte de service a le contrôle total des fichiers que vous essayez de joindre. C'est peut-être une évidence, mais vous devriez toujours vérifier qu'il y a de l'essence dans le réservoir, ne supposez pas !

Si vous utilisez SQL Server 2008 Enterprise, vous devriez envisager d'utiliser Cryptage transparent des données (TDE) au lieu de EFS, les performances sont meilleures et la gestion est plus agréable.

3voto

JohnMcG Points 5062

Vérifiez les permissions NTFS (comme l'a dit Nick) et assurez-vous que le serveur SQL a accès aux fichiers en utilisant le compte sous lequel le service est exécuté, ainsi que le compte que vous utilisez pour vous connecter au serveur SQL.

Lorsque vous détachez une base de données, le SQL Server supprime automatiquement les droits sur les fichiers de tout le monde, sauf de la personne qui a détaché la base de données.

1voto

Dr Zimmerman Points 136

N'utilisez pas EFS avec SQL Server. Si vous debe utiliser un cryptage au niveau du système d'exploitation, puis utiliser BitLocker. Sinon, utilisez le propre TDE de SQL Server. EFS avec SQL Server réalise des performances horribles .

1voto

Phillip Points 163

EFS ne procède pas non plus à un véritable cryptage du fichier lorsque celui-ci est en cours d'utilisation. Il ne crypte les données physiques qu'après la fermeture du flux de fichiers, ce qui signifie que vous devez arrêter le serveur SQL pour crypter le fichier. Le fichier est décrypté lorsqu'il est accessible et est stocké dans le cache du système et dans la mémoire sans être crypté. C'est juste une chose à garder à l'esprit.

Il me semble qu'il s'agit plutôt d'un problème de permission et non d'un problème lié à l'EFS. Avez-vous essayé de déplacer le fichier dans le dossier du répertoire de données du serveur SQL et de voir s'il est accessible sur le serveur à cet endroit ? Nous utilisons souvent cette méthode lorsque nous testons des problèmes d'autorisation. Si le serveur peut le joindre à partir de là, nous savons que les emplacements d'origine ont un problème d'autorisation.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X