2009-07-17 7 views
0

Je suis en train de créer une base de données SQL Server Express en utilisant SMO comme ceci:Comment créer une base de données en utilisant SMO avec tout le monde ayant la permission?

Database db = new Database(server, dataSource); 
... 
db.Create(); 

Je suis en mesure d'utiliser l'amende de base de données. Mais, si quelqu'un d'autre essaie de copier la base de données, il obtient des erreurs d'autorisation de fichier. En regardant sous l'onglet de sécurité dans Windows Explorer, je suis le seul à avoir la permission. Si je fais simplement une copie du fichier, la copie donne à tout le monde des permissions.

Alors, que dois-je faire pour que Create() donne la permission à tout le monde? Je pense que le fichier créé hériterait des permissions du répertoire ... mais apparemment pas. Je me rends compte que je pourrais définir les autorisations de fichier moi-même, mais je voudrais plutôt essayer de comprendre pourquoi le Create() donne des autorisations spéciales.

Répondre

1

Je pense, vous essentiellement avez seulement besoin d'ajouter un accès pour le rôle « public » - n'a jamais essayé moi-même, mais essayez ceci:

Database db = new Database(server, dataSource); 
db.Roles.Add(new DatabaseRole(db, "public")); 
db.Create(); 

Est-ce que le travail? Vos collègues peuvent-ils accéder à la base de données maintenant?

Marc

+0

Cela ne fonctionne pas. Il ajoute plus d'autorisations. Mais, lorsque je détache la source de données créée, les autorisations de fichier reviennent à l'utilisateur qui a créé le fichier. Notez que la création de la base de données est effectuée sur une machine de génération sous un compte administrateur. La machine de génération crée tous les fichiers et notre programme d'installation de développement récupère ces fichiers à partir du serveur de construction. Mais sans avoir les permissions, les développeurs n'obtiennent pas les fichiers DB. Je suppose que je vais juste faire une copie de fichier de la base de données créée et cela devrait fonctionner puisque la copie héritera des permissions du dossier. – bsh152s

Questions connexes