web-dev-qa-db-fra.com

SQL Server Express LocalDB peut-il être connecté à distance?

Je cherche à utiliser le nouveau SQL Server Express LocalDB (je pense que c'est le code nommé "Denali") pour une application de bureau.

Il fonctionne actuellement avec SQL Compact, mais l'utilisateur souhaite partager la base de données entre plusieurs PC sur un réseau. Malheureusement, ce n'est pas quelque chose que SQL Compact peut faire, donc j'examine d'autres solutions.

Le client a besoin de pouvoir envoyer facilement des fichiers de base de données vers d'autres sites ou de les sauvegarder sur un disque flash, donc j'évite d'aller à SQL Express car il y a pas mal de connaissances "administrateur" requises pour sauvegarder et restaurer.

Donc, mes questions sont les suivantes: le nouveau SQL Express LocalDB prend-il en charge les connexions à distance à la base de données sur un réseau et/ou via un dossier réseau partagé contenant le fichier mdf?

LocalDB prend en charge la fourniture d'un chemin d'accès pour une base de données locale attachée dans sa chaîne de connexion (AttachDbFileName), d'où l'option de dossier réseau partagé.

REMARQUE: Cette question concerne "LocalDB" la nouvelle version de SQL Express 'Denali' et non pas SQL Server Express 2008 ou une version antérieure. Voir l'article ici annonçant la sortie de LocalDB: http://blogs.msdn.com/b/sqlexpress/archive/2011/07/12/12/introducing-localdb-a-better-sql-express.aspx

28
Mark Whitfeld

Non, SQL Server Express LocalDB n'accepte pas les connexions distantes.

L'idée avec un dossier réseau partagé peut fonctionner, mais uniquement si vous pouvez vous assurer que l'instance LocalDB est arrêtée avant d'essayer de copier le fichier. Gardez également à l'esprit qu'une seule instance LocalDB peut avoir un fichier de base de données donné ouvert en même temps. et n'oubliez pas les fichiers journaux!

Avertissement de sécurité supplémentaire: contrairement aux bases de données SQL Server Compact, les bases de données SQL Server Express (y compris celles de LocalDB) ne sont pas conçues comme format d'échange de données sécurisé. Par exemple, ils peuvent contenir du code malveillant dans des assemblys .NET intégrés. Vous ne devez donc jamais ouvrir de bases de données à partir d'une source non fiable.

Peut-être que fournir au client un outil simple qui automatise le processus de sauvegarde serait une meilleure idée?

26

En bref, oui, c'est possible. Voici un tutoriel sur la façon de le configurer.

En outre, voici n autre message avec un problème potentiel qui pourrait se produire.

Les deux expliquent comment configurer SQL Server Express pour accepter les connexions à distance.

2
Neil Knight

Ce n'est pas un nouveau sujet, mais je voudrais partager mon expérience avec la base de données SQL Server Express LocalDB.

J'ai un projet WPF C # utilisant une base de données SQL avec LocalDb Engine. Ça marche bien pas de problème, je peux accéder à la base de données. Je voulais que ce programme fonctionne sur le réseau avec plus de PC. Dans mon scénario sur le réseau, un autre PC peut utiliser la base de données de mon PC (en utilisant le chemin UNC dans la chaîne de connexion).
Il me semble que la connexion à distance fonctionne. Mais lorsque le PC distant est connecté, je n'ai pas pu me connecter à ma base de données. Si je me connectais en premier, le PC distant ne pourrait pas se connecter. Cela me dit donc que la connexion à distance fonctionne, mais la connexion multiple n'est pas autorisée.
OK, je n'ai pas abandonné et j'ai exécuté le programme à partir de mon PC deux fois et j'ai vu qu'il fonctionnait, ce qui me dit que le même moteur SQL LocalDB peut se connecter plusieurs fois.

J'espère que cette expérience aidera quelqu'un. Merci.

1
Zoltan