Ich versuche, eine SQL Server Express-Datenbank SMO zu schaffen mit etwa so:Wie erstellt man eine Datenbank unter Verwendung von SMO mit allen Berechtigungen?
Database db = new Database(server, dataSource);
...
db.Create();
Ich bin in der Lage, die Datenbank in Ordnung zu verwenden. Wenn jedoch jemand anderes versucht, die Datenbank zu kopieren, erhalten sie Dateiberechtigungsfehler. Wenn ich im Windows-Explorer unter der Registerkarte "Sicherheit" nachschaue, bin ich der einzige, der die Erlaubnis hat. Wenn ich einfach eine Kopie der Datei anlege, gibt die Kopie alle Berechtigungen.
Also, was muss ich tun, damit Create() allen die Erlaubnis erteilt? Ich würde denken, dass die erstellte Datei die Berechtigungen des Verzeichnisses erben würde ... aber anscheinend nicht. Mir ist klar, dass ich die Dateiberechtigungen selbst einstellen könnte, würde aber lieber versuchen zu verstehen, warum Create() spezielle Berechtigungen erteilt.
Das funktioniert nicht. Es fügt mehr Berechtigungen hinzu. Wenn ich die erstellte Datenquelle jedoch lösche, werden die Dateiberechtigungen wieder auf den Benutzer zurückgesetzt, der die Datei erstellt hat. Beachten Sie, dass die Datenbankerstellung auf einer Build-Maschine unter einem administrativen Konto erfolgt. Der Erstellungscomputer erstellt alle Dateien, und unser Entwicklungsprogramm greift diese Dateien vom Erstellungsserver ab. Aber ohne die Berechtigungen erhalten die Entwickler die DB-Dateien nicht. Ich denke, ich mache nur eine Dateikopie der erstellten db und es sollte funktionieren, da die Kopie die Berechtigungen des Ordners erbt. – bsh152s