Pytanie Czy SQL Server Express LocalDB może być podłączony zdalnie?


Zajmuję się wykorzystaniem nowego SQL Server Express LocalDB (myślę, że jest to kod o nazwie "Denali") dla aplikacji komputerowej.

Obecnie działa z SQL Compact, ale użytkownik chce udostępnić bazę danych między wieloma komputerami w sieci. Niestety nie jest to coś, co SQL Compact może zrobić, więc badam inne rozwiązania.

Klient wymaga możliwości łatwego wysyłania plików baz danych do innych witryn lub tworzenia ich kopii zapasowych na dysku flash, dlatego unikam przechodzenia do SQL Express, ponieważ do tworzenia kopii zapasowych i przywracania danych wymagana jest wiedza "administratora".

Tak, moje pytania brzmią, czy nowy SQL Express LocalDB obsługuje zdalne połączenia z bazą danych przez sieć i / lub przez udostępniony folder sieciowy z zawartym w nim plikiem mdf?

LocalDB obsługuje dostarczanie ścieżki dla dołączonej lokalnej bazy danych w łańcuchu połączenia (AttachDbFileName), stąd opcja udostępnionego folderu sieciowego.

UWAGA: To pytanie odnosi się do "LocalDB" nowej wersji SQL Express "Denali", a nie do SQL Server Express 2008 lub wcześniejszych. Zobacz artykuł tutaj ogłaszający wydanie LocalDB: http://blogs.msdn.com/b/sqlexpress/archive/2011/07/12/inroducing-localdb-a-better-sql-express.aspx


21
2018-02-08 12:57


pochodzenie


Wyjaśnienie dotyczące części "Denali": Denali była nazwa kodowa dla SQL Server 2012, a nie wersja LocalDB programu SQL Server Express. Myślę, że zamieszanie wynika z faktu, że LocalDB został wprowadzony w CTP3 SQL Server 2012, kiedy wciąż był nazywany SQL Server "Denali". - Krzysztof Kozielczyk
Dzięki, Krzysztof! Teraz rozumiem :) - Mark Whitfeld


Odpowiedzi:


Nie, SQL Server Express LocalDB nie akceptuje połączeń zdalnych.

Pomysł z udostępnionym folderem sieciowym może działać, ale tylko wtedy, gdy będziesz mógł upewnić się, że wystąpienie LocalDB zostało zamknięte przed próbą skopiowania pliku. Należy również pamiętać, że tylko jedna instancja LocalDB może mieć otwarty dowolny plik bazy danych w tym samym czasie. i nie zapomnij o plikach dziennika!

Dodatkowe ostrzeżenie dotyczące bezpieczeństwa: w przeciwieństwie do baz danych SQL Server Compact, bazy danych SQL Server Express (w tym LocalDB) nie są zaprojektowane jako bezpieczny format wymiany danych. Na przykład mogą zawierać złośliwy kod w osadzonych w nich zestawach .NET. Dlatego nigdy nie powinieneś otwierać baz danych z niezaufanego źródła.

Być może lepszym rozwiązaniem jest zapewnienie klientowi prostego narzędzia, które automatyzuje proces tworzenia kopii zapasowych?


24
2018-02-09 19:12



Dzięki! Bardzo wyczerpująca odpowiedź. Opcja automatycznego tworzenia kopii zapasowych niestety nie zadziała, ponieważ klient chce móc udostępniać i wysyłać pocztą elektroniczną bazę danych tak, jak zrobiłbyś to z dokumentem tekstowym lub podobnym. Jakieś bazy danych oparte na plikach, które poleciłbyś do tego, aby obsługiwały połączenia zdalne? - Mark Whitfeld


Krótko mówiąc, tak, może. Tutaj jest seminarium o tym, jak to skonfigurować.

Tutaj też jest inny post z potencjalnym problemem, który może wystąpić.

Oba wyjaśniają, jak skonfigurować program SQL Server Express do akceptowania połączeń zdalnych.


3
2018-02-08 12:59



Dziękuję za Twój wkład, ale moje pytanie odnosi się do "LocalDB" nowej wersji SQL Express "Denali". Uaktualnię to pytanie, aby było bardziej jasne w tym względzie. Dzięki! - Mark Whitfeld


To nie jest nowy wątek, ale chciałbym podzielić się moim doświadczeniem z bazą SQL Server Express LocalDB.

Mam projekt WPF C # za pomocą bazy danych SQL z LocalDb Engine. Działa dobrze, nie ma problemu, mogę uzyskać dostęp do bazy danych. Chciałem, aby ten program działał w sieci z większą liczbą komputerów. W moim scenariuszu w sieci inny komputer może korzystać z bazy danych z mojego komputera (używając ścieżki UNC w ciągu połączenia).
Wydawało mi się, że działa zdalne połączenie. Ale kiedy zdalny komputer jest podłączony, nie mogłem połączyć się z moją bazą danych. Jeśli najpierw podłączyłem komputer zdalny nie mógł się połączyć. To mówi mi, że działa połączenie zdalne, ale połączenie wielokrotne jest niedozwolone.
OK, nie poddałem się i dwukrotnie uruchomiłem program z mojego komputera i zobaczyłem, że działa, co mówi mi, że ten sam silnik SQL LocalDB może łączyć się kilka razy.

Mam nadzieję, że to doświadczenie pomoże komuś. Dzięki.


0
2017-08-11 12:18



Ta kropelka tekstu jest trudna do zrozumienia. Nie jest to przydatne, jeśli pozostanie w ten sposób. Proste zdania. Temat czasownika obiektu. Używaj akapitów do oddzielania treści - GhostCat
Przepraszam, naprawdę próbowałem sformatować ten tekst, ale nie mogłem wstawić nowej linii w tekście. Jak mogę zrobić nowy akapit? - Zoltan