INNA EDYCJA
Cory, jeśli masz zainstalowane poprzednie wersje SQL Server (np. 2008), czyli wersję sqlcmd
ty używasz. Aby połączyć się z LocalDb, musisz używać wersji SQL Server 2012 sqlcmd
. Dlatego instrukcje dla użytkowników muszą zapewniać, że korzystają z wersji SQL Server 2012, uruchamiając:
C:\Program Files\Microsoft SQL Server\110\Tools\Binn\sqlcmd -S "(localdb)\.\InstanceName"
To zadziałało dla mnie. To, czego nie zweryfikowałem, to czy ta ścieżka i wersja sqlcmd
jest dostępny dla użytkowników, którzy mają tylko zainstalowano plik sqllocaldb.msi. Przepraszamy, ale nie mam żadnych maszyn bez zainstalowanego SQL Server 2012 (lub z zainstalowanymi tylko poprzednimi wersjami), aby dokładnie to wypróbować. Ale daj mi znać, jeśli jawnie wywołasz wersję 110 sqlcmd
załatwia sprawę.
Myślę, że możesz również poinstruować użytkowników, aby zmienili swoje zmienne systemowe, tak aby wersje 110 były pierwsze (co IMHO powinno mieć miejsce automatycznie).
FileTimeToSystemTime
został potwierdzony jako błąd przez jednego ze współpracowników Krzysztofa. Więc nadal nie ma rozwiązania, o którym wiem, że osoby niebędące właścicielami mogą łączyć się przez sqllocaldb
. Ale pokazałem, że zarówno SSMS, jak i sqlcmd
można zmusić do pracy, więc mam nadzieję, że zbliżysz się do biegania.
EDYTUJ
Musisz dodać do instancji dowolnych użytkowników niebędących właścicielami, np. CREATE LOGIN [MyDomain\OtherUser] FROM WINDOWS;
a także wszelkie odpowiednie uprawnienia. W moim teście logowanie kończyło się niepowodzeniem i generowało niewłaściwy komunikat o błędzie (komunikat o błędzie "FileTimeToSystemTime" to błąd). Musisz także GRANT CONNECT
. Gdy to zrobisz, będziesz móc połączyć się z drugim użytkownikiem za pomocą Management Studio z tym połączeniem (jedynym, którego próbowałem):
(localdb)\.\MySharedInstance
Ale z sqlcmd
, nadal otrzymuję błąd bez względu na to, jak próbuję się połączyć:
sqlcmd -S "(localdb)\.\MySharedInstance"
sqlcmd -S ".\MySharedInstance"
sqlcmd -S "(localdb)\MySharedInstance"
sqlcmd -S "GREENHORNET\MySharedInstance"
sqlcmd -S ".\LOCALDB#SH04FF8A"
sqlcmd -S "GREENHORNET\LOCALDB#SH04FF8A"
Cała wydajność:
Chociaż sprawdziłem, że instancja jest ustawiona na akceptowanie połączeń zdalnych. Jest więc inny obręcz, który sqlcmd
musi przechodzić.
I odnośnie sqllocaldb
exe, jak to wynika z logiki? Widzę, że instancja jest tam przez info
, otrzymuję prawidłowy komunikat o błędzie, gdy próbuję go zatrzymać, otrzymuję komunikat, że jest [już] uruchomiony, gdy próbuję go uruchomić, ale nie mogę się z nim połączyć?
Więc chyba, że potrzebujesz sqlcmd
dostęp, w krótkim okresie chciałbym, aby wtórni użytkownicy robili swoje z SSMS (po przyznaniu odpowiednich uprawnień) i mam nadzieję, że Krzysztof będzie miał więcej informacji na temat innych elementów.
Jeśli chodzi o aktualizację 4.0.2, od http://connect.microsoft.com/SQLServer/feedback/details/723737/smo-cant-connect-to-localdb-instances :