WEITERE BEARBEITUNG
Cory, wenn Sie frühere Versionen von SQL Server installiert haben (z. B. 2008), ist das die Version von sqlcmd
du benutzt. Um eine Verbindung zu LocalDb herzustellen, müssen Sie die SQL Server 2012-Version von sqlcmd
verwenden . Daher müssen Ihre Anweisungen an Ihre Benutzer sicherstellen, dass sie die Version von SQL Server 2012 verwenden, indem Sie Folgendes ausführen:
C:\Program Files\Microsoft SQL Server\110\Tools\Binn\sqlcmd -S "(localdb)\.\InstanceName"
Das hat bei mir funktioniert. Was ich nicht überprüft habe, ist, ob dieser Pfad und diese Version von sqlcmd
ist für Benutzer verfügbar, die nur haben installierte die sqllocaldb.msi. Tut mir leid, aber ich habe keine nackten Maschinen ohne installierten SQL Server 2012 (oder nur mit installierten Vorgängerversionen), um dies gründlich auszuprobieren. Aber lassen Sie es mich bitte wissen, wenn Sie explizit die Version 110 von sqlcmd
aufrufen funktioniert.
Ich denke, Sie können Benutzer auch anweisen, ihre Systemvariablen so zu ändern, dass die 110-Versionen zuerst kommen (was meiner Meinung nach automatisch der Fall sein sollte).
Die FileTimeToSystemTime
wurde von einem Mitarbeiter von Krzysztof als Fehler bestätigt. Daher gibt es meines Wissens nach immer noch keine Lösung für Nicht-Eigentümer, um sich über sqllocaldb
zu verbinden . Aber ich habe gezeigt, dass sowohl SSMS als auch sqlcmd
kann zum Laufen gebracht werden, also hoffe ich, dass dich das dem Laufen näher bringt.
BEARBEITEN
Sie müssen der Instanz alle Benutzer hinzufügen, die keine Eigentümer sind, z. CREATE LOGIN [MyDomain\OtherUser] FROM WINDOWS;
und auch alle entsprechenden Berechtigungen. In meinem Test schlug die Anmeldung fehl und erzeugte die falsche Fehlermeldung (die Fehlermeldung „FileTimeToSystemTime“ ist ein Fehler). Sie müssen auch GRANT CONNECT
. Sobald Sie dies getan haben, werden Sie es tun in der Lage sein, sich vom zweiten Benutzer mit Management Studio mit dieser Verbindung zu verbinden (die einzige, die ich versucht habe):
(localdb)\.\MySharedInstance
Aber von sqlcmd
, bekomme ich immer noch eine Fehlermeldung, egal wie ich versuche, eine Verbindung herzustellen:
sqlcmd -S "(localdb)\.\MySharedInstance"
sqlcmd -S ".\MySharedInstance"
sqlcmd -S "(localdb)\MySharedInstance"
sqlcmd -S "GREENHORNET\MySharedInstance"
sqlcmd -S ".\LOCALDB#SH04FF8A"
sqlcmd -S "GREENHORNET\LOCALDB#SH04FF8A"
Alle Erträge:
Obwohl ich überprüft habe, dass die Instanz so eingestellt ist, dass sie Remoteverbindungen akzeptiert. Es gibt also einen anderen Rahmen, den sqlcmd
muss durchlaufen werden.
Und bezüglich der sqllocaldb
exe, wie folgt das irgendeiner Logik? Ich kann sehen, dass die Instanz über info
vorhanden ist , ich bekomme eine richtige Fehlermeldung, wenn ich versuche, es zu stoppen, ich bekomme eine Nachricht, dass es [bereits] gestartet ist, wenn ich versuche, es zu starten, aber ich kann keine Verbindung herstellen?
Also es sei denn, Sie brauchen sqlcmd
Zugriff, kurzfristig würde ich die sekundären Benutzer ihre Sache mit SSMS erledigen lassen (sobald Sie angemessene Berechtigungen erteilt haben) und Krzysztof wird hoffentlich mehr Informationen zu den anderen Elementen haben.
In Bezug auf das 4.0.2-Update von http://connect.microsoft.com/SQLServer/feedback/details/723737/smo-cant-connect-to-localdb-instances :