J'essaye d'écrire un programme pour permettre à un utilisateur techniquement naïf non privilégié de créer une nouvelle base de données SQL Server et de le recevoir sous la forme d'un fichier .mdf
. Je comprends que les fichiers .mdf
ne sont pas vraiment censés être traités comme des sauvegardes de bases de données, mais je dois le faire de cette façon pour maintenir la compatibilité avec les logiciels commerciaux existants qui fonctionnent comme ça.Autorisations sur le nouveau fichier mdf
J'utilise Visual Studio 2013 et SQL Server 2014, bien que je voudrais que le programme soit en mesure de travailler avec des versions de SQL Server qui remonte au moins à 2008.
Ce que je trouve est que je peux « t copier le fichier .mdf
créé par
CREATE DATABASE XXXXX on
(NAME=<name>,FILENAME=<filename>')
parce qu'il finit par appartenance (je pense) à MSSQL$SQLEXPRESS
. La raison pour laquelle je dis 'je pense' est que quand je vais dans les propriétés du fichier et accepte les privilèges d'administrateur pour voir le propriétaire, il me dit 'Impossible d'afficher le propriétaire actuel.' Je peux transférer la propriété du fichier, mais seulement en utilisant les privilèges d'administrateur.
Il semble donc que je ne peux pas copier le fichier .MDF
sans privilèges d'administrateur, ce qui semble assez ridicule étant donné que j'ai pu créer le fichier sans ces privilèges. J'ai essayé de créer le fichier dans un dossier situé sous le dossier App_Data
de mon utilisateur et avec un accès complet pour tout le monde aux sous-dossiers et fichiers, mais cela n'a pas aidé.
Quelqu'un peut-il me suggérer ce que je peux faire (par programmation) pour rendre ce fichier accessible à un utilisateur non privilégié?
Un grand merci pour votre aide.
Merci à vous deux pour votre aide. Je regardais au mauvais endroit, pensant que le problème était avec les privilèges de fichiers plutôt que le fait que le fichier était toujours attaché à une base de données. – Jonathan