SQL Server 2014 Express LocalDB

O Microsoft SQL Server 2014 Express LocalDB é um modo de execução de SQL Server Express direcionado para desenvolvedores de programas. LocalDBA instalação copia um conjunto mínimo de arquivos necessários para iniciar o Mecanismo de Banco de Dados SQL Server. Depois de LocalDB instalado, os desenvolvedores iniciam uma conexão usando uma cadeia de conexão especial. Ao se conectar, a infraestrutura de SQL Server necessária é criada e iniciada automaticamente, permitindo que o aplicativo use o banco de dados sem tarefas de configuração complexas ou demoradas. O Developer Tools pode fornecer aos desenvolvedores um Mecanismo de Banco de Dados do SQL Server que permite que eles gravem e testem o código Transact-SQL sem precisar gerenciar uma instância de servidor inteira do SQL Server. Uma instância do SQL Server ExpressLocalDB é gerenciada usando o SqlLocalDB.exe utilitário . LocalDB SQL Server Express deve ser usado no lugar do recurso de instância de usuário SQL Server Express que foi preterido.

Instalando o LocalDB

O método principal de instalação LocalDB é usando o programa SqlLocalDB.msi. LocalDBé uma opção ao instalar qualquer SKU do SQL Server 2014 Express. Selecione LocalDB na página Seleção de Recursos durante a instalação do SQL Server Express. Pode haver apenas uma instalação dos LocalDB arquivos binários para cada versão principal do Mecanismo de Banco de Dados do SQL Server. Vários processos do Mecanismo de Banco de Dados podem ser iniciados e todos usarão os mesmos binários. Uma instância do Mecanismo de Banco de Dados SQL Server iniciada como tem LocalDB as mesmas limitações que SQL Server Express

Descrição

O LocalDB programa de instalação usa o programa SqlLocalDB.msi para instalar os arquivos necessários no computador. Depois de instalado, LocalDB é uma instância de SQL Server Express que pode criar e abrir bancos de dados SQL Server. Os arquivos de banco de dados do sistema para o banco de dados são armazenados no caminho de AppData local dos usuários, que normalmente é oculto. Por exemplo, C:\Users\<user>\AppData\Local\Microsoft\Microsoft SQL Server Local DB\Instances\LocalDBApp1\. Os arquivos de banco de dados do usuário são armazenados onde o usuário designa, normalmente em algum lugar na pasta C:\Users\<user>\Documents\ .

Para obter mais informações sobre como incluir LocalDB em um aplicativo, consulte a documentação do Visual Studio Visão geral dos dados locais, Passo a passo: criando um banco de dados localDB SQL Server e Passo a passo: conectando-se a dados em um banco de dados LocalDB SQL Server (Windows Forms).

Para obter mais informações sobre a LocalDB API, consulte SQL Server Express Referência de API de Instância do LocalDB e Função LocalDBStartInstance.

O utilitário SqlLocalDb pode criar novas instâncias do LocalDB, iniciar e parar uma instância do LocalDBe inclui opções para ajudá-lo a gerenciar LocalDBo . Para obter mais informações sobre o utilitário SqlLocalDb, consulte Utilitário SqlLocalDB.

A ordenação de instância para LocalDB é definida como SQL_Latin1_General_CP1_CI_AS e não pode ser alterada. Normalmente há suporte para ordenações nos níveis de banco de dados, de coluna e de expressão. Os bancos de dados independentes seguem os metadados e as regras de ordenações tempdb definidas por Ordenações de banco de dados independentes.

Restrições

LocalDB não pode ser um assinante de replicação de mesclagem.

LocalDB não dá suporte a FILESTREAM.

LocalDB só permite filas locais para o Service Broker.

Uma instância de pertencente às contas internas, como NT AUTHORITY\SYSTEM, pode ter problemas de capacidade de LocalDB gerenciamento devido ao redirecionamento do sistema de arquivos do Windows; Em vez disso, use uma conta normal do Windows como o proprietário.

Instâncias automáticas e nomeadas

LocalDB dá suporte a dois tipos de instâncias: Instâncias automáticas e instâncias nomeadas.

  • As instâncias automáticas do LocalDB são públicas. Elas são criadas e gerenciadas automaticamente para o usuário e podem ser usadas por qualquer aplicativo. Existe uma instância automática de LocalDB para cada versão do LocalDB instalada no computador do usuário. As instâncias automáticas do fornecem gerenciamento contínuo de LocalDB instâncias. Não há necessidade de criar a instância; assim é o suficiente. Isso facilita a instalação e migração do aplicativo para um computador diferente. Se o computador de destino tiver a versão especificada do LocalDB instalada, a instância automática do LocalDB para essa versão também estará disponível no computador de destino. As instâncias automáticas do LocalDB têm um padrão especial para o nome da instância que pertence a um namespace reservado. Isso impede conflitos de nome com instâncias nomeadas do LocalDB. O nome da instância automática é MSSQLLocalDB.

  • As instâncias nomeadas de LocalDB são privadas. Elas pertencem a um único aplicativo, que é responsável por criar e gerenciar a instância. As instâncias nomeadas fornecem isolamento de outras instâncias e melhoram o desempenho reduzindo a contenção de recursos com outros usuários de banco de dados. As instâncias nomeadas devem ser criadas explicitamente pelo usuário por meio da LocalDB API de gerenciamento ou implicitamente por meio do arquivo app.config para um aplicativo gerenciado (embora o aplicativo gerenciado também possa usar a API, se desejado). Cada instância nomeada de LocalDB tem uma versão associada LocalDB que aponta para o respectivo conjunto de LocalDB binários. O nome da instância de um é sysname um LocalDB tipo de dados e pode ter até 128 caracteres. (Isso difere das instâncias nomeadas regulares de SQL Server, que limita os nomes a nomes NetBIOS regulares de 16 caracteres ASCII.) O nome de uma instância do LocalDB pode conter quaisquer caracteres Unicode que sejam legais em um nome de arquivo. Uma instância nomeada que usa um nome de instância automático torna-se uma instância automática.

Usuários diferentes de um computador podem ter instâncias com o mesmo nome. Cada instância é um processo diferente executado como um usuário diferente.

Instâncias compartilhadas do LocalDB

Para dar suporte a cenários em que vários usuários do computador precisam se conectar a uma única instância do LocalDB, LocalDB o dá suporte ao compartilhamento de instância. O proprietário de uma instância pode optar por permitir que os outros usuários do computador se conectem à sua instância. As instâncias automáticas e nomeadas do LocalDB podem ser compartilhadas. Para compartilhar uma instância do LocalDB, o usuário seleciona um nome compartilhado (alias) para isso. Como o nome compartilhado fica visível para todos os usuários do computador, ele deve ser exclusivo no computador. O nome compartilhado de uma instância do LocalDB tem o mesmo formato que a instância nomeada do LocalDB.

Somente um administrador no computador pode criar uma instância compartilhada do LocalDB. Uma instância compartilhada do LocalDB pode ser descompartilhada por um administrador ou pelo proprietário da instância compartilhada do LocalDB. Para compartilhar e desarquivar uma instância do LocalDB, use os LocalDBShareInstance métodos e LocalDBUnShareInstance da LocalDB API ou as opções de compartilhamento e não compartilhadas do utilitário SqlLocalDb.

Iniciando o LocalDB e conectando-se ao LocalDB

Conectando-se à instância automática

A maneira mais fácil de usar LocalDB é se conectar à instância automática de propriedade do usuário atual usando a cadeia de conexão "Server=(localdb)\MSSQLLocalDB;Integrated Security=true". Para se conectar a um banco de dados específico usando o nome do arquivo, conecte-se usando uma cadeia de conexão semelhante a "Server=(LocalDB)\MSSQLLocalDB; Integrated Security=true ;AttachDbFileName=D:\Data\MyDB1.mdf".

Observação

Na primeira vez que um usuário em um computador tenta se conectar ao LocalDB, a instância automática deve ser criada e iniciada. O tempo adicional para a criação da instância pode causar falha durante a tentativa de conexão e exibir uma mensagem de tempo esgotado. Quando isso acontecer, espere alguns segundos para deixar o processo de criação terminar e conecte novamente.

Criando e conectando-se a instâncias nomeadas

Além da instância automática, LocalDB também dá suporte a instâncias nomeadas. Use o programa SqlLocalDB.exe para criar, iniciar e parar uma instância nomeada do LocalDB. Para obter mais informações sobre o SqlLocalDB.exe, consulte Utilitário 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  

A última linha acima, retorna informações semelhantes a estas:

Nome "LocalDBApp1"
Versão <Versão atual>
Nome compartilhado ""
Proprietário "<Seu usuário do Windows>"
Criar automaticamente Não
Estado executando
Hora da última inicialização <Data e hora>
Nome do pipe da instância np:\\.\pipe\LOCALDB#F365A78E\tsql\query

Observação

Se o aplicativo usar uma versão do .NET antes do 4.0.2, você deverá se conectar diretamente ao pipe nomeado do LocalDB. O valor do nome do pipe da instância é o pipe nomeado no qual a instância do LocalDB está escutando. A parte do nome do pipe da instância após LOCALDB# será alterada sempre que a instância do LocalDB for iniciada. Para se conectar à instância do LocalDB usando SQL Server Management Studio, digite o nome do pipe da instância na caixa Nome do servidor da caixa de diálogo Conectar ao Mecanismo de Banco de Dados. No programa personalizado, você pode estabelecer conexão com a instância do usando uma cadeia de LocalDB conexão semelhante a SqlConnection conn = new SqlConnection(@"Server=np:\\.\pipe\LOCALDB#F365A78E\tsql\query");

Conectando-se a uma instância compartilhada do LocalDB

Para se conectar a uma instância compartilhada de LocalDB adicionar .\ (ponto + barra invertida) à cadeia de conexão para fazer referência ao namespace reservado para instâncias compartilhadas. Por exemplo, para se conectar a uma instância compartilhada de LocalDB chamada AppData , use uma cadeia de conexão, como (localdb)\.\AppData parte da cadeia de conexão. Um usuário que se conecta a uma instância compartilhada de LocalDB que não possui deve ter um logon de Autenticação do Windows ou SQL Server Autenticação.

Solução de problemas

Para obter informações sobre a solução de LocalDBproblemas, consulte Solução de problemas SQL Server Express LocalDB 2012.

Permissões

Uma instância do SQL Server 2014 ExpressLocalDB é uma instância criada por um usuário para uso. Qualquer usuário no computador pode criar um banco de dados usando uma instância do LocalDB, armazenando arquivos em seu perfil de usuário e executando o processo sob suas credenciais. Por padrão, o acesso à instância do LocalDB é limitado ao proprietário. Os dados contidos no LocalDB são protegidos pelo acesso do sistema de arquivos aos arquivos de banco de dados. Se os arquivos de banco de dados do usuário forem armazenados em um local compartilhado, o banco de dados poderá ser aberto por qualquer pessoa com acesso do sistema de arquivos a esse local usando uma instância da LocalDB qual eles possuem. Se os arquivos de banco de dados estiverem em um local protegido, como a pasta de dados de usuários, somente esse usuário e os administradores com acesso a essa pasta poderão abrir o banco de dados. Os LocalDB arquivos só podem ser abertos por uma instância de LocalDB por vez.

Observação

LocalDB sempre é executado no contexto de segurança dos usuários; ou seja, LocalDB nunca é executado com credenciais do grupo do Administrador local. Isso significa que todos os arquivos de banco de dados usados por uma LocalDB instância devem estar acessíveis usando a conta do Windows do usuário proprietário, sem considerar a associação no grupo administradores local.

Consulte Também

Utilitário SqlLocalDB