Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Защо не мога да се свържа към споделен екземпляр на SQL Server 2012 LocalDB?

ДРУГА РЕДАКЦИЯ

Кори, ако имате инсталирани предишни версии на SQL Server (напр. 2008), това е версията на sqlcmd използвате. За да се свържете с LocalDb, трябва да използвате версията на SQL Server 2012 на sqlcmd . Така че вашите инструкции към вашите потребители трябва да гарантират, че те използват версията на SQL Server 2012, като изпълнят:

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

Това проработи при мен. Това, което не съм проверил, е дали този път и версия на sqlcmd е достъпно за потребители, които имат само инсталира sqllocaldb.msi. Съжалявам, но нямам голи машини без инсталиран SQL Server 2012 (или с инсталирани само предишни версии), за да изпробвам това напълно. Но моля, уведомете ме, ако изрично извиквам версията 110 на sqlcmd върши работа.

Мисля, че можете също така да успеете да инструктирате потребителите да променят своите системни променливи, така че версиите 110 да са на първо място (което IMHO трябва да е така автоматично).

FileTimeToSystemTime е потвърдено като грешка от един от колегите на Krzysztof. Така че все още няма поправка, за която знам, че не-собствениците да се свързват чрез sqllocaldb . Но аз показах, че както SSMS, така и sqlcmd може да се накара да работи, така че се надявам, че това ще ви доближи до бягането.

РЕДАКТИРАНЕ

Трябва да добавите всички потребители, които не са собственици, към екземпляра, напр. CREATE LOGIN [MyDomain\OtherUser] FROM WINDOWS; както и всякакви подходящи разрешения. В моя тест влизането беше неуспешно и генерираше грешно съобщение за грешка (съобщението за грешка „FileTimeToSystemTime“ е грешка). Трябва също да GRANT CONNECT . След като направите това, ще да можете да се свържете от втория потребител, използвайки Management Studio с тази връзка (единствената, която опитах):

(localdb)\.\MySharedInstance

Но от sqlcmd , все още получавам грешка, независимо как се опитвам да се свържа:

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

Всички добиви:

Въпреки че проверих, че екземплярът е настроен да приема отдалечени връзки. Така че има друг обръч, който sqlcmd трябва да минава.

И по отношение на sqllocaldb exe, как това следва някаква логика? Виждам, че екземплярът е там чрез info , получавам правилно съобщение за грешка, когато се опитвам да го спра, получавам съобщение, че е [вече] стартирано, когато се опитвам да го стартирам, но не мога да се свържа с него?

Така че, освен ако не имате нужда sqlcmd достъп, в краткосрочен план бих накарал вторичните потребители да си свършат работата със SSMS (след като предоставите адекватни разрешения) и се надявам Krzysztof да има повече информация за другите елементи.

Относно актуализацията 4.0.2, от http://connect.microsoft.com/SQLServer/feedback/details/723737/smo-cant-connect-to-localdb-instances :



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Групиране по нулеви и ненулеви стойности

  2. Как да извлечете или конвертирате времеви данни от низ в SQL Server

  3. Максимален размер на реда 8060 Грешка

  4. Възникна невалидна операция с плаваща запетая

  5. Не може да се създаде ред с размер 8064, който е по-голям от допустимия размер на реда 8060