.NET Framework Data Provider for SQL Server

Strings de conexão para .NET Framework Data Provider for SQL Server

SQL Server

Usar uma porta diferente

Se o seu SQL Server escuta em uma porta não padrão, você pode especificar isso usando a sintaxe Servidor,Porta (note a vírgula, não é um dois pontos).

Server=Servidor,Porta;Database=BancoDeDados;User Id=Usuario;Password=Senha;

A porta padrão do SQL Server é 1433 e não há necessidade de especificá-la na string de conexão.

Anexar um arquivo de banco de dados ao conectar a uma instância local do SQL Server Express

Server=.\SQLExpress;AttachDbFilename=C:\Diretorio\Arquivo.mdf;Database=BancoDeDados;Trusted_Connection=Yes;

Por que o parâmetro Database é necessário? Se o banco de dados nomeado já foi anexado, o SQL Server não o anexa novamente. Ele usa o banco de dados anexado como padrão para a conexão.

Anexar um arquivo de banco de dados, localizado no diretório de dados, ao conectar a uma instância local do SQL Server Express

Server=.\SQLExpress;AttachDbFilename=Arquivo.mdf;Database=BancoDeDados;Trusted_Connection=Yes;

Por que o parâmetro Database é necessário? Se o banco de dados nomeado já foi anexado, o SQL Server não o anexa novamente. Ele usa o banco de dados anexado como padrão para a conexão.

Conectar via um endereço IP

Data Source=Servidor,1433;Network Library=DBMSSOCN;Initial Catalog=BancoDeDados;User ID=Usuario;Password=Senha;

DBMSSOCN=TCP/IP é como usar TCP/IP em vez de Named Pipes. No final do Data Source está a porta a ser usada. 1433 é a porta padrão para o SQL Server. Leia mais aqui.

Conexão com uma instância do SQL Server

A sintaxe do nome ServidorInstancia usada na opção Server é a mesma para todas as strings de conexão do SQL Server.

Server=Servidor\Instancia;Database=BancoDeDados;User Id=Usuario;Password=Senha;

Conexão confiável de um dispositivo CE

Um dispositivo Windows CE na maioria das vezes não é autenticado e logado em um domínio, mas é possível usar SSPI ou conexão confiável e autenticação de um dispositivo CE usando esta string de conexão.

Data Source=BancoDeDados;Initial Catalog=BancoDeDados;Integrated Security=SSPI;User ID=Dominio\Usuario;Password=Senha;

Observe que isso funcionará apenas em um dispositivo CE.

Especificando tamanho do pacote

Server=Servidor;Database=BancoDeDados;User ID=Usuario;Password=Senha;Trusted_Connection=False;Packet Size=4096;

Por padrão, o Microsoft .NET Framework Data Provider para SQL Server define o tamanho do pacote de rede para 8192 bytes. No entanto, isso pode não ser o ideal, tente definir este valor para 4096. O valor padrão de 8192 pode causar erros de Falha ao reservar memória contígua também, leia mais aqui.

Espelhamento de Banco de Dados

Se você se conectar com ADO.NET ou o SQL Native Client a um banco de dados que está sendo espelhado, sua aplicação pode aproveitar a capacidade do driver de redirecionar automaticamente as conexões quando ocorre uma falha no espelhamento do banco de dados. Você deve especificar o servidor principal inicial e o banco de dados na string de conexão e o servidor parceiro de failover.

Data Source=BancoDeDados;Failover Partner=Servidor2;Initial Catalog=BancoDeDados;Integrated Security=True;

Existem, claro, muitas outras maneiras de escrever a string de conexão usando o espelhamento de banco de dados, este é apenas um exemplo destacando a funcionalidade de failover. Você pode combinar isso com as outras opções de string de conexão disponíveis.

Habilitar MARS

Server=Servidor;Database=BancoDeDados;Trusted_Connection=True;MultipleActiveResultSets=true;

Instância automática LocalDB

Server=(localdb)\v11.0;Integrated Security=true;

A primeira conexão ao LocalDB criará e iniciará a instância, isso leva algum tempo e pode causar uma falha de tempo limite de conexão. Se isso acontecer, espere um pouco e conecte-se novamente.

Instância compartilhada LocalDB

Tanto instâncias automáticas quanto nomeadas do LocalDB podem ser compartilhadas.

Server=(localdb)\.\MyInstanceShare;Integrated Security=true;

Use o SqlLocalDB.exe para compartilhar ou deixar de compartilhar uma instância. Por exemplo, execute SqlLocalDB.exe share "MyInstance" "MyInstanceShare" para compartilhar uma instância.

Instância de Usuário no SQL Server Express local

O recurso User Instance foi descontinuado com o SQL Server 2012, use o recurso SQL Server Express LocalDB em vez disso.

Instância nomeada LocalDB

Para criar uma instância nomeada, use o programa SqlLocalDB.exe. Exemplo: SqlLocalDB.exe create MyInstance e SqlLocalDB.exe start MyInstance

Server=(localdb)\Instancia;Integrated Security=true;

Instância nomeada LocalDB via nome do pipe de named pipes

A sintaxe Server=(localdb) não é suportada pelas versões do .NET framework anteriores à 4.0.2. No entanto, a conexão por named pipes funcionará para conectar aplicativos pré 4.0.2 às instâncias do LocalDB.

Server=np:\\.\pipe\LOCALDB#F365A78E\tsql\query;

Ao executar SqlLocalDB.exe info MyInstance você obterá (junto com outras informações) o nome do pipe da instância, como "np:\\.\pipe\LOCALDB#F365A78E\tsql\query".

Processamento assíncrono

Uma conexão com o SQL Server que permite a emissão de requisições assíncronas através de objetos ADO.NET.

Server=Servidor;Database=BancoDeDados;Integrated Security=True;Asynchronous Processing=True;

Sempre Criptografado

Data Source=Servidor;Initial Catalog=BancoDeDados;Integrated Security=true;Column Encryption Setting=enabled;

O Always Encrypted no System.Data.SqlClient está disponível apenas para .NET Framework, não para .NET Core. Para usar o Always Encrypted no .NET Core, mude para o Microsoft.Data.SqlClient (pacote NuGet).

Sempre criptografado com enclaves seguros

Data Source=Servidor;Initial Catalog=BancoDeDados;Integrated Security=true;Column Encryption Setting=enabled;Enclave Attestation Url=http://hgs.bastion.local/Attestation;

O Always Encrypted no System.Data.SqlClient está disponível apenas para .NET Framework, não para .NET Core. Para usar o Always Encrypted no .NET Core, mude para o Microsoft.Data.SqlClient (pacote NuGet).

Usando uma Instância de Usuário em uma instância local do SQL Server Express

A funcionalidade de Instância de Usuário cria uma nova instância do SQL Server instantaneamente durante a conexão. Isso só funciona em uma instância local do SQL Server e apenas quando conectando usando autenticação windows sobre pipes nomeados locais. O propósito é poder criar uma instância do SQL Server com plenos direitos para um usuário com direitos administrativos limitados no computador.

Data Source=.\SQLExpress;Integrated Security=true;AttachDbFilename=C:\Diretorio\Arquivo.mdf;User Instance=true;

Para usar a funcionalidade de Instância de Usuário, você precisa habilitá-la no SQL Server. Isso é feito executando o seguinte comando: sp_configure 'user instances enabled', '1'. Para desabilitar a funcionalidade, execute sp_configure 'user instances enabled', '0'.

Azure SQL Database

Padrão

Server=tcp:Servidor.database.windows.net,1433;Database=BancoDeDados;User ID=Usuario@Servidor;Password=Senha;Trusted_Connection=False;Encrypt=True;

Use 'mylogin@myserver' para o parâmetro User ID.

Autenticação integrada do Windows com uma identidade Azure AD

Para se conectar com autenticação integrada e identidade Azure AD, a Autenticação deve ser definida como Active Directory Integrated. O cliente deve estar executando em uma máquina vinculada ao domínio.

Server=tcp:Servidor.database.windows.net,1433;Authentication=Active Directory Integrated;Database=BancoDeDados;

Nota! Você não pode usar Integrated Security=True/SSPI ao se conectar ao Azure SQL Database.

Com MARS habilitado

Server=tcp:Servidor.database.windows.net,1433;Database=BancoDeDados;User ID=Usuario@Servidor;Password=Senha;Trusted_Connection=False;Encrypt=True;MultipleActiveResultSets=True;

Identidade Azure AD especificando nome de usuário e senha

Para conectar usando uma identidade Azure AD com um usuário específico, a Autenticação deve ser definida como Senha do Diretório Ativo.

Server=tcp:Servidor.database.windows.net,1433;Authentication=Active Directory Password;Database=BancoDeDados;UID=Usuario@Dominio;PWD=Senha;