Wie erstellen Sie einen Benutzer für einen login in 2013 SQL Server-Datenbank-Projekt
Ich versuche zu erstellen, die ein Benutzer mit einem login für eine SSDT-database Projekt. Der login bereits auf dem Zielserver vorhanden ist. Mit der folgenden SQL:
CREATE USER [MyLogin]
FOR LOGIN [MyLogin]
WITH DEFAULT_SCHEMA = dbo
GO
Bekomme ich die Fehlermeldung:
Fehler 1 SQL71501: Benutzer: [MyLogin] enthält einen nicht aufgelösten Verweis auf Login [MyLogin].
Habe ich gefunden zwei Lösungen, aber die funktionieren weder mit 2013:
1) Erstellen Sie ein server-Projekt zu verweisen login. Dies ist nicht eine option in der aktuellen version von SSDT /VS2013
2) Deaktivieren Sie die schema-überprüfung. Die option fehlt in 2013 (ich glaube, es war Options -> Database Tools -> Schema Compare
)
InformationsquelleAutor der Frage Turch | 2013-11-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie tatsächlich erstellen die Server-Login in die SQL Server-Datenbank-Projekt mit dem standard-T-SQL-Syntax:
Hinweis: Sie können auch mit der rechten Maustaste auf das Datenbank-Projekt, und wählen Sie "Neues Element Hinzufügen" und navigieren Sie zu SQL Server - > Sicherheit (innerhalb der Vorlagen-dialog) und wählen Sie 'Login (SQL Server)'.
Dies behebt das SQL71501 Fehler und (vorausgesetzt, Sie verwenden SQLPackage.exe für die Bereitstellung) können SQLPackage.exe die Fähigkeit zu vergleichen, die Sicherheit-Objekt mit der Ziel-Datenbank vor der Bereitstellung und Veröffentlichung erfolgt.
Hoffe, das hilft 🙂
InformationsquelleAutor der Antwort Matt Woodward
Wenn Sie sind garantiert, um den login auf dem server, Ihre beste Wette ist, um zu zwicken, Ihr master-dacpac-Datei. Es gibt einige Anweisungen, wie Sie dies hier tun:
http://sqlproj.com/index.php/2013/02/how-to-add-objects-to-master-dacpac
Alternativ können Sie entfernen Verweise auf Anmeldungen aus der SSDT Teil und behandeln in der post-deploy-Skripts. Wenn Sie haben irgendeine Art von Umgebung, in denen verschiedene Berechtigungen, die angewendet werden müssen, im anderen server (Entwicklung, QA, Produktion), das wäre vielleicht die bessere option. Ich habe darüber gebloggt, dieses hier: http://schottsql.blogspot.com/2013/05/ssdt-setting-different-permissions-per.html
Hoffentlich einer von denen helfen. Ich habe doch tatsächlich die erste option, um zu arbeiten, um ein Problem mit, dass zu verwenden, AUSZUFÜHREN, was erfordert, dass der Benutzer in das Projekt. Es war ein wenig schwierig zu bekommen, die genau die XML, die ich aber umgangen, indem Sie ein leeres Projekt mit nur den Anmeldenamen, Sie zu bauen, und kopieren Sie die XML-Daten aus der dacpac in der master-dacpac.
InformationsquelleAutor der Antwort Peter Schott