SQL Server 2012 Express LocalDB

Microsoft SQL Server 2012 Express LocalDB es un modo de ejecución de SQL Server Express destinado a los desarrolladores de programas. La instalación de LocalDB copia un conjunto de archivos mínimo necesario para iniciar el Motor de base de datos de SQL Server. Una vez que LocalDB está instalado, los desarrolladores inician una conexión mediante una cadena de conexión especial. Cuando se realiza la conexión, se crea y se inicia automáticamente la infraestructura de SQL Server necesaria, permitiendo que la aplicación use la base de datos sin tareas de configuración complejas o prolongadas en el tiempo. Las herramientas de desarrollo pueden proporcionar a los desarrolladores de software un Motor de base de datos de SQL Server que les permite escribir y probar el código de Transact-SQL sin tener que administrar una instancia de servidor completa de SQL Server. Una instancia de SQL Server Express LocalDB se administra mediante la utilidad SqlLocalDB.exe. SQL Server Express Se debe usar LocalDB en lugar de la característica de instancias de usuario de SQL Server Express, que ha quedado obsoleta.

Instalar LocalDB

El método principal de instalación de LocalDB consiste en utilizar el programa SqlLocalDB.msi. LocalDB es una opción al instalar los SKU de SQL Server 2012 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 archivos binarios de LocalDB para cada versión principal de Motor de base de datos de SQL Server. Se pueden iniciar varios procesos de Motor de base de datos y todos usarán los mismos binarios. Una instancia de Motor de base de datos de SQL Server iniciada como LocalDB tiene las mismas limitaciones que SQL Server Express

Descripción

El programa de instalación de LocalDB 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 las bases de datos de SQL Server. Los archivos de base de datos del sistema para la base de datos se almacenan normalmente en la ruta de acceso de AppData local de los usuarios, que suele estar oculta. Por ejemplo, C:\Users\<usuario>\AppData\Local\Microsoft\Microsoft SQL Server Local DB\Instances\LocalDBApp1\. Los archivos de base de datos de usuario se almacenan donde indique el usuario, normalmente en algún lugar de la carpeta C:\Users\<usuario>\Documents\.

Para obtener más información acerca de cómo incluir LocalDB en una aplicación, consulte la Visual Studiodocumentación Información general sobre datos locales, el Tutorial: Crear una base de datos SQL Server LocalDB y el Tutorial: Conectarse a datos en una base de datos SQL Server LocalDB (Windows Forms).

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

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

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

Restricciones

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

LocalDB no admite FILESTREAM.

LocalDB solo permite colas locales de Service Broker.

Una instancia de LocalDB pertenecen a las cuentas integradas como NT AUTHORITY\SYSTEM puede tener problemas de capacidad de administración debido a la redirección del sistema de archivos de windows; En su lugar, utilice una cuenta de windows normal como propietario.

Instancias automáticas y con nombre

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

  • Las instancias automáticas de LocalDB son públicas. Se crean y se administran automáticamente para el usuario y se pueden utilizar en cualquier aplicación. Hay una instancia automática de LocalDB en cada versión de LocalDB instalada en el equipo del usuario. Las instancias automáticas de LocalDB proporcionan una administración agilizada de la instancia. No hay ninguna necesidad de crear la instancia; solo funciona. Esto permite la instalación y migración fáciles de las aplicaciones en un equipo diferente. Si la máquina de destino tiene la versión especificada de LocalDB instalada, la instancia automática de LocalDB de esa versión también estará disponible en la máquina de destino. Las instancias automáticas de LocalDB cuentan con un patrón especial para el nombre de instancia que pertenece a un espacio de nombres reservado. Esto evita conflictos de nombres con las instancias con nombre de LocalDB. El nombre de la instancia automática es un único carácter de v seguido del número de versión de lanzamiento de LocalDB en formato xx.x. Por ejemplo, v11.0 representa SQL Server 2012.

  • Las instancias con nombre de LocalDB son privadas. Son propiedad de una sola aplicación que es la responsable de la creación y administración de la instancia. Las instancias con nombre proporcionan el aislamiento de otras instancias y pueden mejorar el rendimiento reduciendo la contención de recursos con otros usuarios de bases de datos. Las instancias con nombre deben ser creadas explícitamente por el usuario a través de la API de administración de LocalDB, o implícitamente a través del archivo app.config para una aplicación administrada (aunque la aplicación administrada también puede utilizar la API, si lo desea). Cada instancia con nombre de LocalDB tiene una versión de LocalDB asociada que señala al conjunto respectivo de binarios de LocalDB. El nombre de instancia de LocalDB es de tipo de datos sysname y puede tener hasta 128 caracteres. (Esta característica es diferente para las instancias con nombre normales de SQL Server, en que los nombres están limitados a nombres de NetBIOS normales de 16 caracteres ASCII). El nombre de una instancia de LocalDB puede contener cualquier tipo de caracteres Unicode que sean válidos en un nombre de archivo. Una instancia con nombre que utiliza un nombre de instancia automática se convierte en una instancia automática.

Usuarios diferentes 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 donde varios usuarios del equipo deben conectarse a una instancia de LocalDB, LocalDB admite el uso compartido de la instancia. Un propietario de una instancia puede decidir permitir que otros usuarios del equipo se conecten a la instancia. Las instancias tanto automáticas como con nombre de LocalDB se pueden compartir. Para compartir una instancia de LocalDB, un usuario selecciona un nombre compartido (alias) para ella. Dado que el nombre compartido está visible para todos los usuarios del equipo, este nombre compartido debe ser único en el equipo. El nombre compartido para 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 ser compartida por la acción de un administrador o 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 para compartir y no compartir de la utilidad SqlLocalDb.

Iniciar LocalDB y conectarse a LocalDB

Conectarse con la instancia automática

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

[!NOTA]

La primera vez que un usuario de un equipo intenta conectarse a LocalDB, se debe crear e iniciar la instancia automática. El tiempo adicional para la creación de la instancia puede hacer que el intento de conexión deje de funcionar con un mensaje de fin de tiempo de espera. Cuando sucede esto, espere unos segundos para que el proceso de creación se complete y, a continuación, conéctese de nuevo.

Crear instancias con nombre y conectarse a ellas

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 acerca de SqlLocalDB.exe, vea SqlLocalDB (utilidad).

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 ú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

ejecutar

Última hora de inicio

<Fecha y hora>

Nombre de canalización de instancia

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

[!NOTA]

Si la aplicación utiliza una versión de .NET anterior a 4.0.2, debe conectarse directamente a la canalización con nombre de LocalDB. El valor Nombre de canalización de instancia es la canalización con nombre en la que escucha la instancia de LocalDB. La parte del nombre de canalización de instancia que sigue a 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 de servidor del cuadro de diálogo Conectar al Motor de base de datos. En el programa personalizado puede establecer la 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");.

Conectarse a una instancia compartida de LocalDB

Para conectarse a una instancia compartida de LocalDB, agregue .\ (punto + barra diagonal inversa) a la cadena de conexión para hacer referencia al espacio de nombres reservado para las instancias compartidas. Por ejemplo, para conectarse a una instancia compartida de LocalDB denominada AppData, utilice 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 de la que no es propietario debe tener un inicio de sesión con autenticación de Windows o autenticación de SQL Server.

Solución de problemas

Para obtener información sobre cómo solucionar problemas de LocalDB, vea la página que trata la solución de problemas de SQL Server 2012 Express LocalDB.

Permisos

Una instancia de SQL Server 2012 Express LocalDB es una instancia creada por el usuario para su uso. Cualquier usuario del equipo puede crear una base de datos usando 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 al sistema de archivos en los archivos de base de datos. Si los archivos de base de datos de usuario se almacenan en una ubicación compartida, cualquiera que tenga acceso al sistema de archivos en esa ubicación puede abrir la base de datos usando una instancia de LocalDB que sea de su propiedad. Si los archivos de base de datos están en una ubicación protegida, como la carpeta de datos de los usuarios, solo el usuario y los administradores con acceso a la carpeta pueden abrir la base de datos. Los archivos de LocalDB solo los puede abrir una instancia de LocalDB cada vez.

[!NOTA]

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

Vea también

Referencia

SqlLocalDB (utilidad)