Warum enthält Visual Studio 2013 Schema Compare Berechtigungsanweisungen für jede Objektdefinition und behandelt sie anders als das Projekt?

7

Ich habe kürzlich eines meiner Projekte in Visual Studio 2013 aktualisiert. Das Update hat meine .dbproj-Datei in eine .sqlproj-Datei geändert, damit sie mit dem neuen SQL-Projektformat kompatibel ist.

Nach der Konvertierung habe ich einen Schema-Vergleich mit meinem SQL-Projekt und meiner SQL 2008-Produktionsdatenbank durchgeführt und es betrachtet jetzt virtuell jedes Objekt als unterschiedlich. Bei der Untersuchung mit dem Schemavergleichstool scheint der Unterschied darin zu liegen, dass jede Objektdefinition auch Anweisungen für die Berechtigungen enthält, die für dieses Objekt jeder Rolle oder jedem Benutzer erteilt wurden.

Somit sieht die Serverseite so aus:

%Vor%

und die Clientseite für dasselbe Objekt sieht folgendermaßen aus:

%Vor%

Warum ist das? Dies trat nicht auf, wenn ich einen Schemavergleich mit Visual Studio 2010 durchführte. Darüber hinaus habe ich alle Optionen für das SQL-Vergleichswerkzeug durchgesehen und konnte keine finden, die "Berechtigungsanweisungen für Objekte ignorieren". Kann jemand helfen?

BEARBEITEN

Um sicherzustellen, dass dies ein Problem mit dem SQL Compare-Tool von Visual Studio und nicht mit SQL Server selbst ist, habe ich den Vergleich in Visual Studio 2010 zwischen meiner Staging- und Produktionsdatenbank erneut ausgeführt, und die Objektdefinitionen enthalten keine Objektberechtigungen wie sie es in Visual Studio 2013 tun.

    
Aaron Hawkins 13.06.2014, 22:20
quelle

1 Antwort

18

Unter den Optionen für das SQL-Vergleichswerkzeug "Schema-Vergleichsoptionen" von Visual Studio 2010 ist auf der Registerkarte "Objekttypen" ein Kontrollkästchen für alle Objekttypen zu sehen, die Sie ignorieren möchten. Es hat "Erweiterte Eigenschaften" und "Berechtigungen" standardmäßig aktiviert.

Im Vergleich zu Visual Studio 2013, dem SQL-Vergleichswerkzeug "Schema-Vergleichsoptionen", dessen Registerkarte "Objekttypen" ein Kontrollkästchen für alle Objekttypen enthält, die in den Vergleich einbezogen werden sollen. Unter dem Baumknoten "Application-scoped" sind alle Objekttypen standardmäßig markiert. Durch das Deaktivieren der Option "Erweiterte Eigenschaften" und "Berechtigungen" verhält sich dieses SQL-Vergleichswerkzeug genau wie das Vergleichstool von Visual Studio 2010.

Dies verhindert, dass die externen Berechtigungen und erweiterten Eigenschaften vom Server als Teil der Definition jedes Objekts zurückgegeben werden. Hoffentlich hilft das jemand anderem, der auf dasselbe Problem stößt.

    
Aaron Hawkins 16.06.2014, 15:35
quelle