Ich habe gerade eine vorhandene SQL Server 2008r2-Produktionsdatenbank in ein VS 2013-Datenbankprojekt importiert.
Ich bekomme jetzt eine Reihe von Fehlern in der Art von
Error SQL71501: User: [mydbuser] has an unresolved reference to Login [mydbuser].
Ich brauche mein VS DB-Projekt nicht wirklich, um Benutzer zu verwalten, aber ich befürchte, dass es versuchen würde, sie bei der Bereitstellung zu entfernen, wenn sie nicht vorhanden wären.
Die Dateien selbst werden als generiert
CREATE USER [mydbuser] FOR LOGIN [mydbuser];
oder
CREATE USER [mydomainuser] FOR LOGIN [MYDOMAIN\mydomainuser];
Die Fehlermarkierung zeigt an, dass es sich speziell um die Anmeldung handelt . Da dies ein Objekt auf Systemebene ist, kann ich verstehen, dass es außerhalb des Bereichs des Datenbankprojekts liegt.
Ist es vorzuziehen, dass ich sie alle ändere?
CREATE USER [mydbuser] WITHOUT LOGIN;
oder die CREATE LOGIN
Klausel am Anfang jeder Datei hinzufügen ?
Das Entfernen der Anmeldereferenz scheint einfacher zu sein, und das Entfernen der Benutzer insgesamt wäre am einfachsten.
Ich möchte sicherstellen, dass ich das Tool so verwende, wie es beabsichtigt war. Wird es Probleme geben, diese wieder in die Produktion zu bringen? Wie wird ein Benutzer / Login über ein Projekt hinzugefügt?
Antworten:
Der einfachste Weg ist, Benutzer nicht über ssdt zu verwalten (die meisten Leute tun dies nicht). Sie können sie also einfach entfernen und keine Anmeldungen oder Benutzer bereitstellen.
Es gibt drei Möglichkeiten:
Ed
quelle
Ich hatte das gleiche Problem und fand diesen Link
Der Benutzer hat einen ungelösten Verweis auf Login
quelle
Anscheinend tritt dieses Problem auch bei VS2017-Datenbankprojekten immer noch auf.
Ich habe es geschafft, es zu lösen, indem ich zuerst den Login und dann den Benutzer erstellt habe.
quelle