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

Hvorfor kan jeg ikke oprette forbindelse til en delt SQL Server 2012 LocalDB-instans?

END EN REDIGERING

Cory, hvis du har tidligere versioner af SQL Server installeret (f.eks. 2008), er det versionen af ​​sqlcmd du bruger. For at oprette forbindelse til LocalDb skal du bruge SQL Server 2012-versionen af ​​sqlcmd . Så dine instruktioner til dine brugere skal sikre, at de bruger SQL Server 2012-versionen ved at køre:

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

Dette virkede for mig. Hvad jeg ikke har verificeret er, om denne sti og version af sqlcmd er tilgængelig for brugere, der kun har installerede sqllocaldb.msi. Beklager, men jeg har ikke nogen nøgne maskiner uden SQL Server 2012 installeret (eller med kun tidligere versioner installeret) for at prøve dette grundigt. Men lad mig det vide, hvis du udtrykkeligt kalder 110-versionen af ​​sqlcmd gør tricket.

Jeg tror, ​​at du muligvis også kan instruere brugerne i at ændre deres systemvariabler, så de 110 versioner kommer først (hvilket IMHO automatisk burde være tilfældet).

FileTimeToSystemTime er blevet bekræftet som en fejl af en af ​​Krzysztofs medarbejdere. Så der er stadig ingen rettelse, som jeg kender til, for ikke-ejere at oprette forbindelse via sqllocaldb . Men jeg har vist, at både SSMS og sqlcmd kan fås til at fungere, så jeg håber, det bringer dig tættere på at løbe.

REDIGER

Du skal tilføje eventuelle ikke-ejerbrugere til instansen, f.eks. CREATE LOGIN [MyDomain\OtherUser] FROM WINDOWS; samt eventuelle passende tilladelser. I min test mislykkedes login og genererede den forkerte fejlmeddelelse (fejlmeddelelsen "FileTimeToSystemTime" er en fejl). Du skal også GRANT CONNECT . Når du har gjort dette, vil du være i stand til at oprette forbindelse fra den anden bruger ved hjælp af Management Studio med denne forbindelse (den eneste jeg prøvede):

(localdb)\.\MySharedInstance

Men fra sqlcmd , Jeg får stadig en fejl, uanset hvordan jeg prøver at oprette forbindelse:

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

Alt udbytte:

Selvom jeg har bekræftet, at instansen er indstillet til at acceptere fjernforbindelser. Så der er en anden ramme, der sqlcmd skal gå igennem.

Og angående sqllocaldb exe, hvordan følger dette nogen logik? Jeg kan se forekomsten er der via info , Jeg får en korrekt fejlmeddelelse, når jeg forsøger at stoppe den, jeg får en meddelelse om, at den [allerede] er startet, når jeg forsøger at starte den, men jeg kan ikke oprette forbindelse til den?

Så medmindre du bruger sqlcmd adgang, på kort sigt vil jeg have de sekundære brugere til at gøre deres ting med SSMS (når du har givet tilstrækkelige tilladelser), og forhåbentlig vil Krzysztof have mere information om de andre elementer.

Med hensyn til 4.0.2-opdateringen, fra http://connect.microsoft.com/SQLServer/feedback/details/723737/smo-cant-connect-to-localdb-instances :



  1. Sådan finder du dubletter i 2 kolonner ikke 1

  2. Opret en midlertidig tabel baseret på en anden tabel i SQL Server

  3. Hvordan bygger man dynamisk forespørgsel ved at binde parametre i node.js-sql?

  4. MySQL password() funktion til PHP