sql >> Database >  >> RDS >> Sqlserver

Waarom kan ik geen verbinding maken met een gedeelde SQL Server 2012 LocalDB-instantie?

EEN ANDERE BEWERKING

Cory, als je eerdere versies van SQL Server hebt geïnstalleerd (bijv. 2008), dat is de versie van sqlcmd je gebruikt. Om verbinding te maken met LocalDb moet u de SQL Server 2012-versie van sqlcmd gebruiken . Dus uw instructies aan uw gebruikers moeten ervoor zorgen dat ze de SQL Server 2012-versie gebruiken door het volgende uit te voeren:

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

Dit werkte voor mij. Wat ik niet heb geverifieerd, is of dit pad en deze versie van sqlcmd is beschikbaar voor gebruikers die alleen . hebben installeerde de sqllocaldb.msi. Sorry, maar ik heb geen naakte machines zonder SQL Server 2012 geïnstalleerd (of met alleen eerdere versies geïnstalleerd) om dit grondig uit te proberen. Maar laat het me weten als je expliciet de 110-versie van sqlcmd aanroept doet de truc.

Ik denk dat je gebruikers misschien ook kunt instrueren om hun systeemvariabelen te wijzigen, zodat de 110 versies eerst komen (wat IMHO automatisch het geval zou moeten zijn).

De FileTimeToSystemTime is bevestigd als een bug door een van Krzysztof's medewerkers. Er is dus nog steeds geen oplossing die ik ken voor niet-eigenaren om verbinding te maken via sqllocaldb . Maar ik heb aangetoond dat zowel SSMS als sqlcmd kan worden gemaakt om te werken, dus ik hoop dat dit je dichter bij hardlopen brengt.

BEWERKEN

U moet gebruikers die geen eigenaar zijn aan de instantie toevoegen, b.v. CREATE LOGIN [MyDomain\OtherUser] FROM WINDOWS; en eventuele juiste machtigingen ook. In mijn test mislukte login en het genereren van de verkeerde foutmelding (de "FileTimeToSystemTime" foutmelding is een bug). U moet ook GRANT CONNECT . Zodra u dit doet, zal u verbinding kunnen maken vanaf de tweede gebruiker met Management Studio met deze verbinding (de enige die ik heb geprobeerd):

(localdb)\.\MySharedInstance

Maar van sqlcmd , ik krijg nog steeds een foutmelding, ongeacht hoe ik verbinding probeer te maken:

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 opbrengst:

Hoewel ik heb geverifieerd dat de instantie is ingesteld om externe verbindingen te accepteren. Er is dus een andere hoepel die sqlcmd moet doorstaan.

En met betrekking tot de sqllocaldb exe, hoe volgt dit enige logica? Ik kan zien dat de instantie aanwezig is via info , krijg ik een correcte foutmelding wanneer ik het probeer te stoppen, ik krijg een bericht dat het [al] is gestart wanneer ik het probeer te starten, maar ik kan er geen verbinding mee maken?

Dus tenzij je nodig sqlcmd toegang zou hebben, zou ik op korte termijn de secundaire gebruikers hun ding laten doen met SSMS (zodra je voldoende rechten hebt verleend) en hopelijk heeft Krzysztof meer informatie over de andere items.

Met betrekking tot de 4.0.2-update, van http://connect.microsoft.com/SQLServer/feedback/details/723737/smo-cant-connect-to-localdb-instances :



  1. Kruispunt instellen in MySQL:een schone manier

  2. Hoe kan ik opgeslagen localStorage-webgegevens doorgeven aan een php-script?

  3. Oracle:kolommen vinden met alleen null-waarden

  4. Tabelvariabele in Oracle opgeslagen procedure