Compartir a través de


SQL Server 2014 Express LocalDB

Microsoft SQL Server 2014 Express LocalDB es un modo de ejecución de SQL Server Express destinado a desarrolladores de programas. LocalDB la instalación copia un conjunto mínimo de archivos necesarios para iniciar el motor de base de datos de SQL Server. Una vez LocalDB instalado, los desarrolladores inician una conexión mediante una cadena de conexión especial. Al conectarse, la infraestructura de SQL Server necesaria se crea e inicia automáticamente, lo que permite que la aplicación use la base de datos sin tareas de configuración complejas o lentas. Las herramientas de desarrollo pueden proporcionar a los desarrolladores un motor de base de datos de SQL Server que les permita escribir y probar Transact-SQL código sin tener que administrar una instancia de servidor completa de SQL Server. Una instancia de SQL Server ExpressLocalDB se administra mediante la SqlLocalDB.exe utilidad . SQL Server ExpressLocalDB debe usarse en lugar de la característica de instancia de usuario de SQL Server Express que está en desuso.

Instalación de LocalDB

El método principal de instalación LocalDB es mediante el programa SqlLocalDB.msi. LocalDB es una opción al instalar cualquier SKU de SQL Server 2014 Express. Seleccione LocalDB en la página Selección de características durante la instalación de SQL Server Express. Solo puede haber una instalación de los LocalDB archivos binarios para cada versión principal del motor de base de datos de SQL Server. Se pueden iniciar varios procesos del motor de base de datos y todos usarán los mismos archivos binarios. Una instancia del motor de base de datos de SQL Server iniciada como LocalDB tiene las mismas limitaciones que SQL Server Express

Descripción

El LocalDB programa de instalación usa el programa SqlLocalDB.msi para instalar los archivos necesarios en el equipo. Una vez instalado, LocalDB es una instancia de SQL Server Express que puede crear y abrir bases de datos de SQL Server. Los archivos de base de datos del sistema se almacenan en la ruta de AppData local de los usuarios, que normalmente está oculta. Por ejemplo , C:\Users\<user>\AppData\Local\Microsoft\Microsoft SQL Server Local DB\Instances\LocalDBApp1\. Los archivos de base de datos de usuario se almacenan donde el usuario designa, normalmente en algún lugar de la carpeta C:\Users\<user>\Documents\ .

Para obtener más información sobre cómo incluir LocalDB en una aplicación, vea la documentación de Visual Studio Información general sobre datos locales, Tutorial: Crear una base de datos localDB de SQL Server y Tutorial: Conexión a datos en una base de datos localDB de SQL Server (Windows Forms).

Para obtener más información sobre la LocalDB API, vea Referencia de API de Instancia LocalDB de SQL Server Express y Función LocalDBStartInstance.

La utilidad SqlLocalDb puede crear nuevas instancias de LocalDB, iniciar y detener una instancia de LocalDBe incluye opciones para ayudarle a administrar LocalDB. Para obtener más información sobre la utilidad SqlLocalDb, vea Utilidad SqlLocalDB.

La intercalación de instancia para LocalDB está establecida en SQL_Latin1_General_CP1_CI_AS y no se puede cambiar. Normalmente se admiten intercalaciones de nivel de base de datos, de nivel de columna y de nivel de expresión. Las bases de datos contenidas siguen las reglas de intercalaciones de metadatos y tempdb definidas por intercalaciones de base de datos contenida.

Restricciones

LocalDB no puede ser un suscriptor de replicación de mezcla.

LocalDB no admite el uso de FILESTREAM.

LocalDB solo permite colas locales para Service Broker.

Una instancia de LocalDB que es propiedad de las cuentas integradas, como NT AUTHORITY\SYSTEM, puede tener problemas de gestión debido a la redirección del sistema de archivos de Windows; en su lugar, use una cuenta normal de Windows como propietario.

Instancias automáticas y nombradas

LocalDB admite dos tipos de instancias: instancias automáticas y instancias con nombre.

  • Las instancias automáticas de LocalDB son públicas. Se crean y administran automáticamente para el usuario y se pueden usar en cualquier aplicación. Existe una instancia automática de LocalDB para cada versión de LocalDB instalada en el equipo del usuario. Las instancias automáticas de LocalDB proporcionan una administración de instancias sin problemas. No es necesario crear la instancia; sólo funciona. Esto permite facilitar la instalación y migración de aplicaciones a un equipo diferente. Si la máquina de destino tiene instalada la versión LocalDB especificada, la instancia automática de LocalDB para esa versión también está disponible en el equipo de destino. Las instancias automáticas de LocalDB tienen un patrón especial para el nombre de instancia que pertenece a un espacio de nombres reservado. Esto evita conflictos de nombres con instancias con nombre de LocalDB. El nombre de la instancia automática es MSSQLLocalDB.

  • Las instancias con nombre de LocalDB son privadas. Son propiedad de una sola aplicación que es responsable de crear y administrar la instancia. Las instancias con nombre proporcionan aislamiento de otras instancias y pueden mejorar el rendimiento al reducir la contención de recursos con otros usuarios de la base de datos. El usuario debe crear instancias con nombre explícitamente a través de la LocalDB API de administración o implícitamente a través del archivo app.config para una aplicación administrada (aunque la aplicación administrada también puede usar la API, si lo desea). Cada instancia con nombre de LocalDB tiene una versión asociada LocalDB que apunta al conjunto respectivo de LocalDB archivos binarios. El nombre de instancia de un LocalDB es de tipo de datos sysname y puede tener hasta 128 caracteres. (Esto difiere de las instancias con nombre normales de SQL Server, que limita los nombres a nombres netBIOS normales de 16 caracteres ASCII). El nombre de una instancia de LocalDB puede contener cualquier carácter Unicode que sea legal dentro de un nombre de archivo. Una instancia nombrada que utiliza un nombre de instancia automático se convierte en una instancia automática.

Los distintos usuarios de un equipo pueden tener instancias con el mismo nombre. Cada instancia es un proceso diferente que se ejecuta como un usuario diferente.

Instancias compartidas de LocalDB

Para admitir escenarios en los que varios usuarios del equipo necesitan conectarse a una sola instancia de LocalDB, LocalDB admite el uso compartido de instancias de LocalDB. Un propietario de instancia puede optar por permitir que los demás usuarios del equipo se conecten a su instancia. Se pueden compartir instancias tanto automáticas como denominadas de LocalDB. Para compartir una instancia de LocalDB un usuario selecciona un nombre compartido (alias) para él. Dado que el nombre compartido es visible para todos los usuarios del equipo, este nombre compartido debe ser único en el equipo. El nombre compartido de una instancia de LocalDB tiene el mismo formato que la instancia con nombre de LocalDB.

Solo un administrador del equipo puede crear una instancia compartida de LocalDB. Una instancia compartida de LocalDB puede dejar de compartirse por un administrador o por el propietario de la instancia compartida de LocalDB. Para compartir y dejar de compartir una instancia de LocalDB, utilice los métodos LocalDBShareInstance y LocalDBUnShareInstance de la API de LocalDB, o las opciones de compartir y no compartir de la utilidad SqlLocalDb.

Inicio de LocalDB y conexión a LocalDB

Conexión a la instancia automática

La manera más fácil de usar LocalDB es conectarse a la instancia automática propiedad del usuario actual mediante la cadena de conexión "Server=(localdb)\MSSQLLocalDB; Integrated Security=true". Para conectarse a una base de datos específica mediante el nombre de archivo, conéctese mediante una cadena de conexión similar a "Server=(LocalDB)\MSSQLLocalDB; Integrated Security=true ; AttachDbFileName=D:\Data\MyDB1.mdf".

Nota:

La primera vez que un usuario de un equipo intenta conectarse a LocalDB, la instancia automática debe crearse e iniciarse. El tiempo adicional para que se cree la instancia puede provocar un error en el intento de conexión con un mensaje de tiempo de espera. Cuando esto suceda, espere unos segundos para que se complete el proceso de creación y vuelva a conectarse.

Creación y conexión a instancias con nombre

Además de la instancia automática, LocalDB también admite instancias con nombre. Use el programa SqlLocalDB.exe para crear, iniciar y detener una instancia con nombre de LocalDB. Para obtener más información sobre SqlLocalDB.exe, vea Utilidad SqlLocalDB.

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

La última línea anterior devuelve información similar a la siguiente.

Nombre "LocalDBApp1"
Versión <Versión actual>
Nombre compartido ""
Propietario "<Su usuario de Windows>"
Creación automática No
Estado correr
Última hora de inicio <Fecha y hora>
Nombre de canalización de instancia np:\\.\pipe\LOCALDB#F365A78E\tsql\query

Nota:

Si la aplicación usa una versión de .NET antes de la versión 4.0.2, debe conectarse directamente a la canalización con nombre de LocalDB. El nombre de la canalización de la instancia es la canalización nombrada en la que la instancia de LocalDB está escuchando. La parte del nombre del conducto de instancia después de LOCALDB# cambiará cada vez que se inicie la instancia de LocalDB. Para conectarse a la instancia de LocalDB mediante SQL Server Management Studio, escriba el nombre de canalización de instancia en el cuadro Nombre del servidor del cuadro de diálogo Conectar al motor de base de datos . Desde el programa personalizado, puede establecer conexión a la instancia de LocalDB mediante una cadena de conexión, similar a SqlConnection conn = new SqlConnection(@"Server=np:\\.\pipe\LOCALDB#F365A78E\tsql\query");

Conexión a una instancia compartida de LocalDB

Para conectarse a una instancia compartida de LocalDB agregar .\ (punto + barra diagonal inversa) a la cadena de conexión para hacer referencia al espacio de nombres reservado para instancias compartidas. Por ejemplo, para conectarse a una instancia compartida de LocalDB denominada AppData, use una cadena de conexión como (localdb)\.\AppData como parte de la cadena de conexión. Un usuario que se conecta a una instancia compartida de LocalDB que no posee debe tener un inicio de sesión de autenticación de Windows o de SQL Server.

Solución de problemas

Para obtener información sobre cómo solucionar problemas, vea Solución de problemas LocalDBde SQL Server 2012 Express LocalDB.

Permisos

Una instancia de SQL Server 2014 ExpressLocalDB es una instancia creada por un usuario para su uso. Cualquier usuario del equipo puede crear una base de datos mediante una instancia de LocalDB, almacenando archivos en su perfil de usuario y ejecutando el proceso con sus credenciales. De forma predeterminada, el acceso a la instancia de LocalDB está limitado a su propietario. Los datos contenidos en LocalDB están protegidos por el acceso del sistema de archivos a los archivos de base de datos. Si los archivos de base de datos de usuario se almacenan en una ubicación compartida, cualquier usuario con acceso al sistema de archivos puede abrir la base de datos con acceso a esa ubicación mediante una instancia de LocalDB la que poseen. Si los archivos de base de datos están en una ubicación protegida, como la carpeta de datos users, solo ese usuario y los administradores con acceso a esa carpeta, pueden abrir la base de datos. Los LocalDB archivos solo se pueden abrir mediante una instancia de LocalDB cada vez.

Nota:

LocalDB siempre se ejecuta bajo el contexto de seguridad de los usuarios; es decir, LocalDB nunca se ejecuta con credenciales del grupo del administrador local. Esto significa que todos los archivos de base de datos usados por una LocalDB instancia deben ser accesibles mediante la cuenta de Windows del usuario propietario, sin tener en cuenta la pertenencia al grupo administradores local.

Véase también

SqlLocalDB (utilidad)