SQL Server Express LocalDBSQL Server Express LocalDB

APLICA-SE A: SimSQL Server NãoBanco de Dados SQL do Azure NãoAzure Synapse Analytics (SQL DW) NãoParallel Data Warehouse APPLIES TO: YesSQL Server NoAzure SQL Database NoAzure Synapse Analytics (SQL DW) NoParallel Data Warehouse

O LocalDB do Microsoft SQL Server Express é um recurso do SQL Server Express voltado para desenvolvedores.Microsoft SQL Server Express LocalDB is a feature of SQL Server Express targeted to developers. Ele está disponível no SQL Server Express com Advanced Services.It is available on SQL Server Express with Advanced Services.

A instalação do LocalDB copia um conjunto mínimo de arquivos necessários para iniciar o Mecanismo de Banco de Dados do SQL ServerSQL Server Database Engine.LocalDB installation copies a minimal set of files necessary to start the Mecanismo de Banco de Dados do SQL ServerSQL Server Database Engine. Depois do LocalDB ser instalado, você poderá iniciar uma conexão usando uma cadeia de conexão especial.Once LocalDB is installed, you can initiate a connection using a special connection string. Ao conectar, a infraestrutura necessária do SQL ServerSQL Server é criada e iniciada automaticamente, permitindo que o aplicativo use o banco de dados sem tarefas de configuração complexas.When connecting, the necessary SQL ServerSQL Server infrastructure is automatically created and started, enabling the application to use the database without complex configuration tasks. O Developer Tools pode fornecer aos desenvolvedores um Mecanismo de Banco de Dados do SQL ServerSQL Server Database Engine que permite que eles gravem e testem o código Transact-SQLTransact-SQL sem precisar gerenciar uma instância de servidor inteira do SQL ServerSQL Server.Developer Tools can provide developers with a Mecanismo de Banco de Dados do SQL ServerSQL Server Database Engine that lets them write and test Transact-SQLTransact-SQL code without having to manage a full server instance of SQL ServerSQL Server.

Mídia de instalaçãoInstallation media

LocalDB é um recurso selecionado durante a instalação do SQL Server Expresse que está disponível durante o download da mídia.LocalDB is a feature you select during SQL Server Express installation, and is available when you download the media. Se você fizer o download da mídia, escolha Express Advanced ou o pacote LocalDB.If you download the media, either choose Express Advanced or the LocalDB package.

Como alternativa, é possível instalar o LocalDB pelo Instalador do Visual Studio, como parte da carga de trabalho de Processamento e Armazenamento de Dados, da carga de trabalho de desenvolvimento Web e ASP.NET ou como um componente individual.Alternatively, you can install LocalDB through the Visual Studio Installer, as part of the Data Storage and Processing workload, the ASP.NET and web development workload, or as an individual component.

Instalar o LocalDBInstall LocalDB

Instale o LocalDB por meio do assistente de instalação ou usando o programa SqlLocalDB.msi.Install LocalDB through the installation wizard or by using the SqlLocalDB.msi program. O LocalDB é uma opção na instalação do SQL Server Express LocalDB.LocalDB is an option when installing SQL Server Express LocalDB.

Escolha LocalDB na página Seleção de Recursos/Recursos Compartilhados durante a instalação.Select LocalDB on the Feature Selection/Shared Features page during installation. Pode haver somente uma instalação dos arquivos binários do LocalDB para cada versão principal do Mecanismo de Banco de Dados do SQL ServerSQL Server Database Engine.There can be only one installation of the LocalDB binary files for each major Mecanismo de Banco de Dados do SQL ServerSQL Server Database Engine version. Vários processos do Mecanismo de Banco de DadosDatabase Engine podem ser iniciados e todos usarão os mesmos binários.Multiple Mecanismo de Banco de DadosDatabase Engine processes can be started and will all use the same binaries. Uma instância do Mecanismo de Banco de Dados do SQL ServerSQL Server Database Engine iniciada como o LocalDB tem as mesmas limitações do SQL Server ExpressSQL Server Express.An instance of the Mecanismo de Banco de Dados do SQL ServerSQL Server Database Engine started as the LocalDB has the same limitations as SQL Server ExpressSQL Server Express.

Uma instância do LocalDB do SQL Server ExpressSQL Server Express é gerenciada com o utilitário SqlLocalDB.exe.An instance of SQL Server ExpressSQL Server Express LocalDB is managed by using the SqlLocalDB.exe utility. O LocalDB do SQL Server ExpressSQL Server Express deve ser usado no lugar do recurso de instância do usuário SQL Server ExpressSQL Server Express que foi preterido.SQL Server ExpressSQL Server Express LocalDB should be used in place of the SQL Server ExpressSQL Server Express user instance feature, which was deprecated.

DescriçãoDescription

O programa de instalação do LocalDB usa o programa SqlLocalDB.msi para instalar os arquivos necessários no computador.The LocalDB setup program uses the SqlLocalDB.msi program to install the necessary files on the computer. Uma vez instalado, o LocalDB torna-se uma instância do SQL Server ExpressSQL Server Express que pode criar e abrir bancos de dados do SQL ServerSQL Server.Once installed, LocalDB is an instance of SQL Server ExpressSQL Server Express that can create and open SQL ServerSQL Server databases. Os arquivos de banco de dados do sistema para o banco de dados são armazenados no caminho de AppData local, que normalmente é oculto.The system database files for the database are stored in the local AppData path, which is normally hidden. Por exemplo, C:\Users\<user>\AppData\Local\Microsoft\Microsoft SQL Server Local DB\Instances\LocalDBApp1\.For example, C:\Users\<user>\AppData\Local\Microsoft\Microsoft SQL Server Local DB\Instances\LocalDBApp1\. Arquivos de banco de dados do usuário são armazenados onde o usuário determinar, normalmente em algum lugar na pasta C:\Users\<user>\Documents\.User database files are stored where the user designates, typically somewhere in the C:\Users\<user>\Documents\ folder.

Para saber mais sobre como incluir o LocalDB em um aplicativo, confira a Visual StudioVisual Studio Visão geral de dados locais, Criar um banco de dados e adicionar tabelas no Visual Studio.For more information about including LocalDB in an application, see Visual StudioVisual Studio Local Data Overview, Create a database and add tables in Visual Studio.

Para saber mais sobre a API LocalDB, confira Referência de LocalDB do SQL Server Express.For more information about the LocalDB API, see SQL Server Express LocalDB Reference.

O utilitário SqlLocalDb pode criar novas instâncias do LocalDB, iniciar e interromper uma instância do LocalDB e inclui opções para ajudar você a gerenciar o LocalDB. Para saber mais sobre o utilitário SqlLocalDb, confira Utilitário SqlLocalDB.The SqlLocalDb utility can create new instances of LocalDB, start and stop an instance of LocalDB, and includes options to help you manage LocalDB.For more information about the SqlLocalDb utility, see SqlLocalDB Utility.

A ordenação de instâncias do LocalDB foi definida como SQL_Latin1_General_CP1_CI_AS e não pode ser alterada.The instance collation for LocalDB is set to SQL_Latin1_General_CP1_CI_AS and cannot be changed. Normalmente há suporte para ordenações nos níveis de banco de dados, de coluna e de expressão.Database-level, column-level, and expression-level collations are supported normally. Os bancos de dados independentes seguem os metadados e as regras de ordenações tempdb definidas por Ordenações de banco de dados independentes.Contained databases follow the metadata and tempdb collations rules defined by Contained Database Collations.

RestriçõesRestrictions

  • O LocalDB não pode ser um assinante de replicação de mesclagem.LocalDB cannot be a merge replication subscriber.

  • O LocalDB não dá suporte a FILESTREAM.LocalDB does not support FILESTREAM.

  • O LocalDB só permite filas locais para Service Broker.LocalDB only allows local queues for Service Broker.

  • Uma instância do LocalDB pertencente às contas internas, como NT AUTHORITY\SYSTEM, pode ter problemas de capacidade de gerenciamento devido ao redirecionamento do sistema de arquivos do Windows.An instance of LocalDB owned by the built-in accounts such as NT AUTHORITY\SYSTEM can have manageability issues due to windows file system redirection. Em vez disso, use uma conta normal do Windows como o proprietário.Instead use a normal windows account as the owner.

Instâncias automáticas e nomeadasAutomatic and named instances

O LocalDB oferece suporte a dois tipos de instâncias: Instâncias automáticas e instâncias nomeadas.LocalDB supports two kinds of instances: Automatic instances and named instances.

  • As instâncias automáticas do LocalDB são públicas.Automatic instances of LocalDB are public. Elas são criadas e gerenciadas automaticamente para o usuário e podem ser usadas por qualquer aplicativo.They are created and managed automatically for the user and can be used by any application. Existe uma instância automática do LocalDB para cada versão do LocalDB instalada no computador do usuário.One automatic instance of LocalDB exists for every version of LocalDB installed on the user's computer. As instâncias automáticas do LocalDB fornecem gerenciamento de instância contínuo.Automatic instances of LocalDB provide seamless instance management. Não há necessidade de criar a instância; assim é o suficiente.There is no need to create the instance; it just works. Esse recurso facilita a instalação e migração do aplicativo para um computador diferente.This feature allows for easy application installation and migration to a different computer. 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.If the target machine has the specified version of LocalDB installed, the automatic instance of LocalDB for that version is available on the target machine as well. As instâncias automáticas do LocalDB têm um padrão especial para o nome de instância que pertence a um namespace reservado.Automatic instances of LocalDB have a special pattern for the instance name that belongs to a reserved namespace. As instâncias automáticas evitam conflitos de nomes com instâncias nomeadas do LocalDB.Automatic instances prevents name conflicts with named instances of LocalDB. O nome da instância automática é MSSQLLocalDB.The name for the automatic instance is MSSQLLocalDB.

  • As instâncias nomeadas do LocalDB são privadas.Named instances of LocalDB are private. Elas pertencem a um único aplicativo, que é responsável por criar e gerenciar a instância.They are owned by a single application that is responsible for creating and managing the instance. 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.Named instances provide isolation from other instances and can improve performance by reducing resource contention with other database users. As instâncias nomeadas devem ser criadas explicitamente pelo usuário por meio da API de gerenciamento do LocalDB ou implicitamente por meio do arquivo app.config para um aplicativo gerenciado (embora o aplicativo gerenciado também possa usar a API, se desejado).Named instances must be created explicitly by the user through the LocalDB management API or implicitly via the app.config file for a managed application (although managed application may also use the API, if desired). Cada instância nomeada do LocalDB tem uma versão associada do LocalDB que aponta para o conjunto respectivo de binários do LocalDB.Each named instance of LocalDB has an associated LocalDB version that points to the respective set of LocalDB binaries. O nome da instância do LocalDB é o tipo de dados sysname e pode ter até 128 caracteres.The instance name of a LocalDB is sysname data type and can have up to 128 characters. (Isso difere das instâncias nomeadas normais do SQL ServerSQL Server, que limitam os nomes a nomes NetBIOS normais de 16 caracteres ASCII.) O nome de uma instância do LocalDB pode conter qualquer caractere Unicode legal em um nome de arquivo. Uma instância nomeada que usa um nome de instância automática torna-se uma instância automática.(This differs from regular named instances of SQL ServerSQL Server, which limits names to regular NetBIOS names of 16 ASCII chars.) The name of an instance of LocalDB can contain any Unicode characters that are legal within a filename.A named instance that uses an automatic instance name becomes an automatic instance.

Usuários diferentes de um computador podem ter instâncias com o mesmo nome.Different users of a computer can have instances with the same name. Cada instância é um processo diferente executado como um usuário diferente.Each instance is a different processes running as a different user.

Instâncias compartilhadas do LocalDBShared instances of LocalDB

Para oferecer suporte a cenários onde vários usuários do computador precisam se conectar a uma única instância do LocalDB, o LocalDB oferece suporte ao compartilhamento de instâncias.To support scenarios where multiple users of the computer need to connect to a single instance of LocalDB, LocalDB supports instance sharing. O proprietário de uma instância pode optar por permitir que outros usuários do computador se conectem à sua instância.An instance owner can choose to allow the other users on the computer to connect the instance. As instâncias automáticas e nomeadas do LocalDB podem ser compartilhadas.Both automatic and named instances of LocalDB can be shared. Para compartilhar uma instância do LocalDB, o usuário escolhe um nome compartilhado (alias) para isso.To share an instance of LocalDB, a user selects a shared name (alias) for it. Como o nome compartilhado fica visível para todos os usuários do computador, ele deve ser exclusivo no computador.Because the shared name is visible to all users of the computer, this shared name must be unique on the computer. O nome compartilhado de uma instância do LocalDB tem o mesmo formato da instância nomeada do LocalDB.The shared name for an instance of LocalDB has the same format as the named instance of LocalDB.

Somente um administrador no computador pode criar uma instância compartilhada do LocalDB.Only an administrator on the computer can create a shared instance of LocalDB. Uma instância compartilhada do LocalDB pode ser descompartilhada por um administrador ou pelo proprietário da instância compartilhada do LocalDB.A shared instance of LocalDB can be unshared by an administrator or by the owner of the shared instance of LocalDB. Para compartilhar e descompartilhar uma instância do LocalDB, use os métodos LocalDBShareInstance e LocalDBUnShareInstance da API do LocalDB ou as opções de compartilhamento e descompartilhamento do utilitário SqlLocalDb.To share and unshared an instance of LocalDB, use the LocalDBShareInstance and LocalDBUnShareInstance methods of the LocalDB API, or the share and unshared options of the SqlLocalDb utility.

Iniciar o LocalDB e conectar-se ao LocalDBStart LocalDB and connect to LocalDB

Conectar-se à instância automáticaConnect to the automatic instance

A maneira mais fácil de usar o LocalDB é conectar-se à instância automática pertencente ao usuário atual usando a cadeia de conexão Server=(localdb)\MSSQLLocalDB;Integrated Security=true.The easiest way to use LocalDB is to connect to the automatic instance owned by the current user by using the connection string Server=(localdb)\MSSQLLocalDB;Integrated Security=true. Para se conectar a um banco de dados específico usando o nome do arquivo, se conecte usando uma cadeia de conexão semelhante a Server=(LocalDB)\MSSQLLocalDB; Integrated Security=true ;AttachDbFileName=D:\Data\MyDB1.mdf.To connect to a specific database by using the file name, connect using a connection string similar to Server=(LocalDB)\MSSQLLocalDB; Integrated Security=true ;AttachDbFileName=D:\Data\MyDB1.mdf.

A convenção de nomenclatura e a cadeia de conexão para o formato LocalDB foram alterados no SQL Server 2014.The naming convention and connection string for LocalDB format changed in SQL Server 2014. Anteriormente, o nome da instância era um único caractere v seguido pelo LocalDB e o número de versão.Previously, the instance name was a single v character followed by LocalDB and the version number. A partir do SQL Server 2014, não há mais suporte para esse formato de nome de instância e a cadeia de conexão mencionada anteriormente deve ser usada.Starting with SQL Server 2014, this instance name format is no longer supported, and the connection string mentioned previously should be used instead.

Observação

  • A primeira vez que o usuário de um computador tenta conectar-se ao LocalDB, a instância automática deve ser criada e iniciada.The first time a user on a computer tries to connect to LocalDB, the automatic instance must be both created and started. 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.The extra time for the instance to be created can cause the connection attempt to fail with a timeout message. Quando isso acontecer, espere alguns segundos para deixar o processo de criação terminar e conecte novamente.When this happens, wait a few seconds to let the creation process complete, and then connect again.

Criar e conectar-se a uma instância nomeadaCreate and connect to a named instance

Além da instância automática, o LocalDB também oferece suporte a instâncias nomeadas.In addition to the automatic instance, LocalDB also supports named instances. Use o programa SqlLocalDB.exe para criar, iniciar e interromper uma instância nomeada do LocalDB.Use the SqlLocalDB.exe program to create, start, and stop a named instance of LocalDB. Para obter mais informações sobre o SqlLocalDB.exe, consulte Utilitário SqlLocalDB.For more information about SqlLocalDB.exe, see SqlLocalDB Utility.

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

A última linha acima, retorna informações semelhantes a estas:The last line above, returns information similar to the following.

NomeName LocalDBApp1
VersãoVersion <Current Version><Current Version>
Nome compartilhadoShared name """"
ProprietárioOwner “<Your Windows User>”"<Your Windows User>"
Criar automaticamenteAuto create NãoNo
EstadoState executandorunning
Hora da última inicializaçãoLast start time <Date and Time><Date and Time>
Nome do pipe da instânciaInstance pipe name np:\\.\pipe\LOCALDB#F365A78E\tsql\querynp:\\.\pipe\LOCALDB#F365A78E\tsql\query

Observação

Se o aplicativo usar uma versão do .NET anterior à 4.0.2, conecte-se diretamente ao pipe nomeado do LocalDB.If your application uses a version of .NET before 4.0.2 you must connect directly to the named pipe of the LocalDB. O valor do nome do pipe da Instância é o pipe nomeado que a instância do LocalDB está ouvindo.The Instance pipe name value is the named pipe that the instance of LocalDB is listening on. A parte do nome do pipe da instância após LOCALDB# mudará sempre que a instância do LocalDB for iniciada.The portion of the Instance pipe name after LOCALDB# will change each time the instance of LocalDB is started. Para conectar-se à instância do LocalDB usando o SQL Server Management StudioSQL Server Management Studio, digite o nome do pipe da instância na caixa Nome do servidor da caixa de diálogo Conectar-se a Mecanismo de Banco de DadosDatabase Engine .To connect to the instance of LocalDB by using SQL Server Management StudioSQL Server Management Studio, type the instance pipe name in the Server name box of the Connect to Mecanismo de Banco de DadosDatabase Engine dialog box. Em seu programa personalizado, você pode estabelecer uma conexão com a instância do LocalDB usando uma cadeia de conexão semelhante a SqlConnection conn = new SqlConnection(@"Server=np:\\.\pipe\LOCALDB#F365A78E\tsql\query");From your custom program you can establish connection to the instance of LocalDB using a connection string similar to SqlConnection conn = new SqlConnection(@"Server=np:\\.\pipe\LOCALDB#F365A78E\tsql\query");

Para conectar-se a uma instância compartilhada do LocalDBConnect to a shared instance of LocalDB

Para conectar-se a uma instância compartilhada do LocalDB, adicione \.\ (barra invertida + ponto + barra invertida) à cadeia de conexão para fazer referência ao namespace reservado para instâncias compartilhadas.To connect to a shared instance of LocalDB add \.\ (backslash + dot + backslash) to the connection string to reference the namespace reserved for shared instances. Por exemplo, para conectar-se a uma instância compartilhada do LocalDB denominada AppData, use uma cadeia de conexão como (localdb)\.\AppData parte da cadeia de conexão.For example, to connect to a shared instance of LocalDB named AppData use a connection string such as (localdb)\.\AppData as part of the connection string. Um usuário que se conecta a uma instância compartilhada do LocalDB que não pertence a ele deve ter uma Autenticação do Windows ou um logon de Autenticação do SQL ServerSQL Server.A user connecting to a shared instance of LocalDB that they do not own must have a Windows Authentication or SQL ServerSQL Server Authentication login.

Solução de problemasTroubleshooting

Para saber mais sobre como solucionar problemas do LocalDB, confira Solucionar problemas do LocalDB do SQL Server 2012 Express.For information about troubleshooting LocalDB, see Troubleshooting SQL Server 2012 Express LocalDB.

PermissõesPermissions

Uma instância do SQL Server Express LocalDB é criada por um usuário para uso próprio.An instance of SQL Server Express LocalDB is an instance created by a user for their use. Qualquer usuário no computador pode criar um banco de dados usando uma instância do LocalDB, armazenando arquivos sob o seu perfil do usuário e executando o processo sob suas credenciais.Any user on the computer can create a database using an instance of LocalDB, store files under their user profile, and run the process under their credentials. Por padrão, o acesso à instância do LocalDB é limitado a seu proprietário.By default, access to the instance of LocalDB is limited to its owner. Os dados contidos no LocalDB são protegidos pelo acesso de sistema de arquivos aos arquivos de banco de dados.The data contained in the LocalDB is protected by file system access to the database files. Se os arquivos de banco de dados do usuário estiverem armazenados em um local compartilhado, o banco de dados poderá ser aberto por qualquer pessoa com acesso de sistema de arquivos ao local, usando uma instância de LocalDB de sua propriedade.If user database files are stored in a shared location, the database can be opened by anyone with file system access to that location by using an instance of LocalDB that they own. 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.If the database files are in a protected location, such as the users data folder, only that user, and any administrators with access to that folder, can open the database. Os arquivos do LocalDB só podem ser abertos por uma instância do LocalDB de cada vez.The LocalDB files can only be opened by one instance of LocalDB at a time.

Observação

O LocalDB sempre é executado sob o contexto de segurança de usuários, ou seja, o LocalDB nunca é executado com credenciais do grupo de Administradores local.LocalDB always runs under the users security context; that is, LocalDB never runs with credentials from the local Administrator's group. Isso significa que todos os arquivos de banco de dados usados por uma instância do LocalDB devem estar acessíveis usando a conta de Windows do usuário proprietário, sem considerar a associação no grupo de Administradores local.This means that all database files used by a LocalDB instance must be accessible using the owning user's Windows account, without considering membership in the local Administrators group.

Consulte TambémSee Also

Utilitário SqlLocalDBSqlLocalDB Utility