sql >> Databáze >  >> RDS >> Sqlserver

Proč se nemohu připojit ke sdílené instanci SQL Server 2012 LocalDB?

DALŠÍ ÚPRAVA

Cory, pokud máte nainstalované předchozí verze SQL Server (např. 2008), jedná se o verzi sqlcmd používáte. Abyste se mohli připojit k LocalDb, musíte používat verzi SQL Server 2012 sqlcmd . Vaše pokyny pro vaše uživatele tedy musí zajistit, že používají verzi SQL Server 2012 spuštěním:

C:\Program Files\Microsoft SQL Server\110\Tools\Binn\sqlcmd -S "(localdb)\.\InstanceName"

Toto fungovalo pro mě. Co jsem neověřil, je, zda tato cesta a verze sqlcmd je k dispozici uživatelům, kteří mají pouze nainstaloval soubor sqllocaldb.msi. Je mi líto, ale nemám žádné nahé počítače bez nainstalovaného SQL Server 2012 (nebo s nainstalovanými pouze předchozími verzemi), abych to důkladně vyzkoušel. Ale dejte mi prosím vědět, pokud výslovně voláte verzi 110 sqlcmd dělá trik.

Myslím, že můžete být také schopni instruovat uživatele, aby změnili své systémové proměnné tak, aby verze 110 byly na prvním místě (což by IMHO mělo být automaticky).

FileTimeToSystemTime byl potvrzen jako chyba jedním z Krzysztofových spolupracovníků. Stále tedy neexistuje žádná oprava, o které vím, že by se uživatelé, kteří nejsou vlastníky, mohli připojit přes sqllocaldb . Ale ukázal jsem, že jak SSMS, tak sqlcmd lze přimět k práci, takže doufám, že vás to přiblíží běhu.

UPRAVIT

Do instance musíte přidat uživatele, kteří nejsou vlastníky, např. CREATE LOGIN [MyDomain\OtherUser] FROM WINDOWS; a také veškerá příslušná oprávnění. V mém testovacím přihlášení selhalo a generovalo nesprávnou chybovou zprávu (chybová zpráva "FileTimeToSystemTime" je chyba). Musíte také GRANT CONNECT . Jakmile to uděláte, uděláte to být schopen se připojit od druhého uživatele pomocí Management Studio s tímto připojením (jediným, které jsem zkoušel):

(localdb)\.\MySharedInstance

Ale z sqlcmd , stále se mi zobrazuje chyba bez ohledu na to, jak se pokouším připojit:

sqlcmd -S "(localdb)\.\MySharedInstance"
sqlcmd -S ".\MySharedInstance"
sqlcmd -S "(localdb)\MySharedInstance"
sqlcmd -S "GREENHORNET\MySharedInstance"
sqlcmd -S ".\LOCALDB#SH04FF8A"
sqlcmd -S "GREENHORNET\LOCALDB#SH04FF8A"

Veškerý výnos:

I když jsem ověřil, že instance je nastavena tak, aby přijímala vzdálená připojení. Existuje tedy nějaký další obruč, který sqlcmd musí projít.

A ohledně sqllocaldb exe, jak to má nějakou logiku? Vidím, že instance je tam pomocí info , při pokusu o zastavení se zobrazí správná chybová zpráva, při pokusu o spuštění se zobrazí zpráva, že [již] je spuštěno, ale nemohu se k němu připojit?

Pokud tedy nepotřebujete sqlcmd přístup, v krátkodobém horizontu bych nechal sekundární uživatele, aby dělali svou práci s SSMS (jakmile udělíte odpovídající oprávnění) a doufejme, že Krzysztof bude mít více informací o ostatních položkách.

Pokud jde o aktualizaci 4.0.2, z http://connect.microsoft.com/SQLServer/feedback/details/723737/smo-cant-connect-to-localdb-instances :



  1. Výkon rekurzivních uložených procedur v MYSQL pro získání hierarchických dat

  2. Naučte se, jak vytvořit PK z Sequence Trigger v SQL Developer

  3. PostgreSQL 9.4:Agregovat / spojit tabulku na id pole JSON uvnitř pole

  4. Jak seřadit objekty v poli uvnitř hodnoty json nebo jsonb podle vlastnosti objektů?