UN'ALTRA MODIFICA
Cory, se hai installato versioni precedenti di SQL Server (ad es. 2008), questa è la versione di sqlcmd
tu stai usando. Per connetterti a LocalDb devi utilizzare la versione SQL Server 2012 di sqlcmd
. Pertanto, le istruzioni per gli utenti devono garantire che utilizzino la versione di SQL Server 2012 eseguendo:
C:\Program Files\Microsoft SQL Server\110\Tools\Binn\sqlcmd -S "(localdb)\.\InstanceName"
Questo ha funzionato per me. Quello che non ho verificato è se questo percorso e la versione di sqlcmd
è disponibile per gli utenti che hanno solo installato sqllocaldb.msi. Mi dispiace ma non ho macchine nude senza SQL Server 2012 installato (o con solo le versioni precedenti installate) per provarlo a fondo. Ma per favore fatemi sapere se chiamate esplicitamente la versione 110 di sqlcmd
fa il trucco.
Penso che potresti anche essere in grado di istruire gli utenti a modificare le loro variabili di sistema in modo che le 110 versioni vengano prima (cosa che IMHO dovrebbe essere automaticamente il caso).
Il FileTimeToSystemTime
è stato confermato come un bug da uno dei colleghi di Krzysztof. Quindi non c'è ancora alcuna soluzione che io sappia per i non proprietari per la connessione tramite sqllocaldb
. Ma ho dimostrato che sia SSMS che sqlcmd
può essere fatto funzionare, quindi spero che questo ti avvicini alla corsa.
MODIFICA
È necessario aggiungere all'istanza eventuali utenti non proprietari, ad es. CREATE LOGIN [MyDomain\OtherUser] FROM WINDOWS;
e anche tutte le autorizzazioni appropriate. Nel mio accesso di prova non riusciva e generava il messaggio di errore sbagliato (il messaggio di errore "FileTimeToSystemTime" è un bug). Devi anche GRANT CONNECT
. Dopo averlo fatto, farai essere in grado di connettersi dal secondo utente utilizzando Management Studio con questa connessione (l'unica che ho provato):
(localdb)\.\MySharedInstance
Ma da sqlcmd
, continuo a ricevere un errore indipendentemente da come provo a connettermi:
sqlcmd -S "(localdb)\.\MySharedInstance"
sqlcmd -S ".\MySharedInstance"
sqlcmd -S "(localdb)\MySharedInstance"
sqlcmd -S "GREENHORNET\MySharedInstance"
sqlcmd -S ".\LOCALDB#SH04FF8A"
sqlcmd -S "GREENHORNET\LOCALDB#SH04FF8A"
Tutti i rendimenti:
Anche se ho verificato che l'istanza è impostata per accettare connessioni remote. Quindi c'è qualche altro cerchio che sqlcmd
deve essere passato.
E per quanto riguarda sqllocaldb
exe, come segue una logica? Posso vedere che l'istanza è presente tramite info
, ricevo un messaggio di errore appropriato quando provo a interromperlo, ricevo un messaggio che è [già] avviato quando provo ad avviarlo, ma non riesco a connettermi ad esso?
Quindi, a meno che tu non ne abbia necessità sqlcmd
accesso, a breve termine vorrei che gli utenti secondari facessero le loro cose con SSMS (una volta che hai concesso le autorizzazioni adeguate) e spero che Krzysztof abbia più informazioni sugli altri elementi.
Per quanto riguarda l'aggiornamento 4.0.2, da http://connect.microsoft.com/SQLServer/feedback/details/723737/smo-cant-connect-to-localdb-instances :