Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Perché non riesco a connettermi a un'istanza condivisa di SQL Server 2012 LocalDB?

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 :