SQL Server 2012 Express LocalDB

Microsoft SQL Server 2012 Express LocalDB est un mode d'exécution de SQL Server Express destiné aux développeurs de programmes. L'installation de LocalDB copie l'ensemble minimal des fichiers nécessaires pour démarrer le Moteur de base de données SQL Server. Une fois que LocalDB est installé, les développeurs initialisent une connexion à l'aide d'une chaîne de connexion particulière. Lors de la connexion, l'infrastructure SQL Server nécessaire est automatiquement créée et démarrée, ce qui permet à l'application d'utiliser la base de données sans tâches de configuration complexes ou longues. Les outils de développement incluent un Moteur de base de données SQL Server qui permet aux développeurs d'écrire et de tester le code Transact-SQL sans devoir gérer une instance de serveur SQL Server complète. Une instance de SQL Server Express LocalDB est gérée à l'aide de l'utilitaire SqlLocalDB.exe. SQL Server Express LocalDB doit être utilisé à la place de la fonctionnalité d'instance utilisateur SQL Server Express qui est déconseillée.

Installation de LocalDB

La méthode d'installation principale de LocalDB fait appel au programme SqlLocalDB.msi. LocalDB est une option quelle que soit la référence SQL Server 2012 Express installée. Sélectionnez LocalDB dans la page Sélection de fonctionnalités lors de l'installation de SQL Server Express. Il ne peut y avoir qu'une seule installation des fichiers binaires LocalDB pour chaque version majeure de Moteur de base de données SQL Server. Plusieurs processus Moteur de base de données peuvent être démarrés et utiliseront tous les mêmes fichiers binaires. Une instance de Moteur de base de données SQL Server démarrée comme LocalDB a les mêmes limitations que SQL Server Express

Description

Le programme d'installation de LocalDB utilise le programme SqlLocalDB.msi pour installer les fichiers nécessaires sur l'ordinateur. Une fois installé, LocalDB est une instance de SQL Server Express qui peut créer et ouvrir des bases de données SQL Server. Les fichiers de base de données système pour la base de données sont stockés dans le chemin d'accès AppData local de l'utilisateur, qui est normalement masqué. Par exemple C:\Users\<utilisateur>\AppData\Local\Microsoft\Microsoft SQL Server Local DB\Instances\LocalDBApp1\. Les fichiers de la base de données utilisateur sont stockés à l'emplacement indiqué par l'utilisateur, en général dans le dossier C:\Users\<utilisateur>\Documents\.

Pour plus d'informations sur l'inclusion de LocalDB dans une application, consultez la documentation de Visual Studio, rubrique Vue d'ensemble des données locales, Procédure pas à pas : création d'une base de données LocalDB et Procédure pas à pas : connexion à des données dans une base de données Access (Windows Forms).

Pour plus d'informations sur l'API LocalDB, consultez Guide de référence de l'API d'instance SQL Server Express LocalDB et Fonction LocalDBStartInstance.

L'utilitaire SqlLocalDb peut créer des instances de LocalDB, démarrer et arrêter une instance de LocalDB et inclut des options permettant de gérer LocalDB. Pour plus d'informations sur l'utilitaire SqlLocalDb, consultez Utilitaire SqlLocalDB.

Le classement d'instance pour LocalDB a la valeur SQL_Latin1_General_CP1_CI_AS et ne peut pas être modifié. Les classements au niveau des bases de données, des colonnes ou des expressions sont pris en charge normalement. Les bases de données à relation contenant-contenu suivent les règles de classement des métadonnées et de tempdb définies par Classements de base de données à relation contenant-contenu.

Restrictions

LocalDB ne peut pas être un abonné de réplication de fusion

LocalDB ne prend pas en charge FILESTREAM.

LocalDB n'autorise que les files d'attente locales pour Service Broker.

Une instance de LocalDB détenue par les comptes intégrés tels que NT AUTHORITY\SYSTEM peut présenter des problèmes de gestion dus à la redirection du système de fichiers Windows ; à la place, utilisez un compte Windows normal comme propriétaire.

Instances automatiques et nommées

LocalDB prend en charge deux types d'instances : les instances automatiques et les instances nommées.

  • Les instances automatiques de LocalDB sont publiques. Elles sont créées et gérées automatiquement pour l'utilisateur et peuvent être utilisées par n'importe quelle application. Il existe une instance automatique de LocalDB pour chaque version de LocalDB installée sur l'ordinateur de l'utilisateur. Les instances automatiques de LocalDB fournissent la gestion transparente d'instances. Il n'est pas nécessaire de créer l'instance ; elle fonctionne tout simplement. Cela permet une installation et une migration faciles de l'application vers un autre ordinateur. Si la version spécifiée de LocalDB est installée sur l'ordinateur cible, l'instance automatique de LocalDB pour cette version est disponible sur l'ordinateur cible. Les instances automatiques de LocalDB ont un modèle particulier pour le nom de l'instance qui appartient à un espace de noms réservé. Cela empêche les conflits de nom avec les instances nommées de LocalDB. Le nom de l'instance automatique est un caractère v unique, suivi du numéro de version préliminaire de LocalDB au format xx.x. Par exemple, v11.0 représente SQL Server 2012.

  • Les instances nommées de LocalDB sont privées. Elles appartiennent à une seule application qui est chargée de créer et de gérer l'instance. Les instances nommées fournissent l'isolement d'autres instances et peuvent améliorer les performances en réduisant les contentions de ressources avec d'autres utilisateurs de base de données. Les instances nommées doivent être créées explicitement par l'utilisateur via l'API de gestion LocalDB ou implicitement via le fichier app.config pour une application managée (bien que l'application managée puisse également utiliser l'API, si vous le souhaitez). Chaque instance nommée de LocalDB possède une version associée de LocalDB qui désigne le jeu respectif de binaires de LocalDB. Le nom d'instance d'un LocalDB est un type de données sysname et peut comporter jusqu'à 128 caractères. (Ceci diffère des instances nommées normales de SQL Server, qui limitent les noms aux noms NetBIOS standard de 16 caractères ASCII.) Le nom d'une instance de LocalDB peut contenir tous les caractères Unicode qui sont valides dans un nom de fichier. Une instance nommée qui utilise un nom d'instance automatique devient une instance automatique.

Les différents utilisateurs d'un ordinateur peuvent avoir des instances de même nom. Chaque instance correspond à différents processus qui s'exécutent sous un utilisateur différent.

Instances partagées de LocalDB

Pour prendre en charge les scénarios dans lesquels plusieurs utilisateurs de l'ordinateur doivent se connecter à une instance unique de LocalDB, LocalDB prend en charge le partage d'instance. Un propriétaire d'instance peut choisir d'autoriser les autres utilisateurs sur l'ordinateur à se connecter à son instance. Les instances automatiques et nommées de LocalDB peuvent être partagées. Pour partager une instance de LocalDB, un utilisateur sélectionne un nom partagé (alias) pour celle-ci. Étant donné que le nom partagé est visible par tous les utilisateurs de l'ordinateur, ce nom partagé doit être unique sur l'ordinateur. Le nom partagé pour une instance de LocalDB présente le même format que l'instance nommée de LocalDB.

Seul un administrateur sur l'ordinateur peut créer une instance partagée de LocalDB. Le partage d'une instance de LocalDB peut être annulé par un administrateur ou par le propriétaire de l'instance partagée de LocalDB. Pour partager et annuler le partage d'une instance de LocalDB, utilisez les méthodes LocalDBShareInstance et LocalDBUnShareInstance de l'API LocalDB, ou les options de partage et non partagées de l'utilitaire SqlLocalDb.

Démarrage de LocalDB et connexion à LocalDB

Se connecter à l'instance automatique

La façon la plus simple d'utiliser LocalDB est de se connecter à l'instance automatique détenue par l'utilisateur actif en utilisant la chaîne de connexion "Server=(localdb)\v11.0;Integrated Security=true". Pour vous connecter à une base de données spécifique à l'aide du nom de fichier, connectez-vous à l'aide d'une chaîne de connexion semblable à "Server=(LocalDB)\v11.0; Integrated Security=true ;AttachDbFileName=D:\Data\MyDB1.mdf".

[!REMARQUE]

La première fois qu'un utilisateur tentera de se connecter à LocalDB, l'instance automatique devra être créée et démarrée. Le temps supplémentaire requis pour créer l'instance peut entraîner l'échec de la tentative de connexion et l'affichage d'un message de délai de connexion dépassé. Dans ce cas, attendez quelques secondes la fin du processus de création, puis connectez-vous à nouveau.

Création et connexion à des instances nommées

En plus de l'instance automatique, LocalDB prend également en charge les instances nommées. Utilisez le programme SqlLocalDB.exe pour créer, démarre, et arrêter une instance nommée LocalDB. Pour plus d'informations sur SqlLocalDB.exe, consultez Utilitaire SqlLocalDB.

REM Create an instance of LocalDB
"C:\Program Files\Microsoft SQL Server\110\Tools\Binn\SqlLocalDB.exe" create LocalDBApp1
REM Start the instance of LocalDB
"C:\Program Files\Microsoft SQL Server\110\Tools\Binn\SqlLocalDB.exe" start LocalDBApp1
REM Gather information about the instance of LocalDB
"C:\Program Files\Microsoft SQL Server\110\Tools\Binn\SqlLocalDB.exe" info LocalDBApp1

La dernière ligne ci-dessus retourne des informations semblables aux suivantes.

Nom

"LocalDBApp1"

Version

<Version actuelle>

Nom partagé

""

Propriétaire

"<Votre_utilisateur_Windows>"

Création automatique

Non

État

exécution

Dernière heure de début

<Date et heure>

Nom du canal de l'instance

np:\\. \pipe\LOCALDB#F365A78E\tsql\query

[!REMARQUE]

Si votre application utilise une version de .NET antérieure à 4.0.2, vous devez vous connecter directement au canal nommé de LocalDB. La valeur Nom du canal de l'instance est le canal nommé sur lequel l'instance de LocalDB écoute. La partie du nom du canal de l'instance après LOCALDB# change chaque fois que l'instance de LocalDB est démarrée. Pour se connecter à l'instance de LocalDB à l'aide de SQL Server Management Studio, entrez le nom du canal de l'instance dans la zone Nom du serveur de la boîte de dialogue ConnexionMoteur de base de données. Depuis votre programme personnalisé, vous pouvez établir la connexion à l'instance de LocalDB à l'aide d'une chaîne de connexion semblable à SqlConnection conn = new SqlConnection(@"Server=np:\\.\pipe\LOCALDB#F365A78E\tsql\query");

Connexion à une instance partagée de LocalDB

Pour vous connecter à une instance partagée de LocalDB, ajoutez .\ (point + barre oblique inverse) à la chaîne de connexion pour faire référence à l'espace de noms réservé aux instances partagées. Par exemple, pour vous connecter à une instance partagée de LocalDB nommée AppData, utilisez une chaîne de connexion telle que (localdb)\.\AppData dans la chaîne de connexion. Un utilisateur se connectant à une instance partagée de LocalDB dont il n'est pas propriétaire doit obtenir une connexion via l'authentification Windows ou l'authentification SQL Server.

Dépannage

Pour plus d'informations sur la résolution des problèmes liés à LocalDB, consultez Dépannage de SQL Server 2012 Express LocalDB.

Autorisations

Une instance de SQL Server 2012 Express LocalDB est une instance créée par un utilisateur pour son utilisation. Tout utilisateur peut créer sur l'ordinateur une base de données à l'aide d'une instance de LocalDB, en stockant les fichiers sous son profil utilisateur et en exécutant le processus à l'aide de ses informations d'identification. Par défaut, l'accès à l'instance de LocalDB est limité à son propriétaire. Les données contenues dans LocalDB sont protégées via l'accès au système de fichiers de base de données. Si les fichiers de base de données utilisateur sont stockés dans un emplacement partagé, la base de données peut être ouverte par toute personne ayant accès au système de fichiers à cet emplacement en utilisant une instance de LocalDB dont elle est propriétaire. Si les fichiers de base de données sont dans un emplacement protégé, tel que le dossier des données d'utilisateurs, seul cet utilisateur, et tous les administrateurs ayant accès à ce dossier, peuvent ouvrir la base de données. Les fichiers LocalDB ne peuvent être ouverts que par une instance de LocalDB à la fois.

[!REMARQUE]

LocalDB s'exécute toujours dans le contexte de sécurité des utilisateurs ; autrement dit, LocalDB ne s'exécute jamais avec les informations d'identification du groupe des administrateurs local. Cela signifie que tous les fichiers de base de données utilisés par une instance LocalDB doivent être accessibles à l'aide du compte Windows de l'utilisateur propriétaire, sans prendre en compte l'appartenance au groupe des administrateurs local.

Voir aussi

Référence

Utilitaire SqlLocalDB