Microsoft OLE DB Driver for SQL Server

Strings de conexão para Microsoft OLE DB Driver for SQL Server

SQL Server

Segurança padrão

Provider=MSOLEDBSQL;Server=Servidor;Database=BancoDeDados;UID=Usuario;PWD=Senha;

Conexão Confiável

Provider=MSOLEDBSQL;Server=Servidor;Database=BancoDeDados;Trusted_Connection=yes;

Estes parâmetros são equivalentes: "Integrated Security=SSPI" é igual a "Trusted_Connection=yes"

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).

Provider=MSOLEDBSQL;Server=Servidor,Porta;Database=BancoDeDados;UID=Usuario;PWD=Senha;

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

ADO para mapear novos tipos de dados

Para que o ADO mapeie corretamente os novos tipos de dados do SQL Server, ou seja, XML, UDT, varchar(max), nvarchar(max) e varbinary(max), inclua DataTypeCompatibility=80; na string de conexão. Se você não está usando ADO, isso não é necessário.

Provider=MSOLEDBSQL;DataTypeCompatibility=80;Server=Servidor;Database=BancoDeDados;UID=Usuario;PWD=Senha;

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

Provider=MSOLEDBSQL;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.

Conectando a uma instância do SQL Server

A sintaxe para especificar a instância do servidor no valor da chave do servidor é a mesma para todas as strings de conexão para o SQL Server.

Provider=MSOLEDBSQL;Server=Servidor\Instancia;Database=BancoDeDados;Trusted_Connection=yes;

Criptografar dados enviados pela rede

Provider=MSOLEDBSQL;Server=Servidor;Database=BancoDeDados;Trusted_Connection=yes;Encrypt=yes;

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.

Provider=MSOLEDBSQL;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.

Grupo de disponibilidade e cluster de failover

Ative a falha rápida para Grupos de Disponibilidade Always On e Instâncias de Cluster de Failover. TCP é o único protocolo suportado. Também defina um timeout explícito, pois esses cenários podem exigir mais tempo.

Provider=MSOLEDBSQL;Server=tcp:AvailabilityGroupListenerDnsName,1433;MultiSubnetFailover=Yes;Database=MyDB;Integrated Security=SSPI;Connect Timeout=30;

MultiSubnetFailover realizará tentativas em paralelo e fará isso mais rápido do que os intervalos de retransmissão TCP padrão. Isso não pode ser combinado com espelhamento, por exemplo, Failover_Partner=mirrorServer.

Habilitar MARS

Provider=MSOLEDBSQL;Server=Servidor;Database=BancoDeDados;Trusted_Connection=yes;MARS Connection=true;

Intenção de aplicação Somente Leitura

Use uma carga de trabalho de leitura ao conectar. Aplica somente leitura no momento da conexão e também para instruções USE database.

Provider=MSOLEDBSQL;Server=tcp:AvailabilityGroupListenerDnsName,1433;MultiSubnetFailover=Yes;ApplicationIntent=ReadOnly;Database=MyDB;Integrated Security=SSPI;Connect Timeout=30;

O resultado do uso de ApplicationIntent depende da configuração do banco de dados. Veja roteamento somente leitura. O padrão para ApplicationIntent é ReadWrite.

Roteamento Somente Leitura

Você pode usar um ouvinte de grupo de disponibilidade para o servidor OU o nome de instância somente leitura para impor uma instância específica somente leitura.

Provider=MSOLEDBSQL;Server=aKnownReadOnlyInstance;MultiSubnetFailover=Yes;ApplicationIntent=ReadOnly;Database=MyDB;Integrated Security=SSPI;Connect Timeout=30;

Um grupo de disponibilidade deve habilitar o roteamento somente leitura para que isso funcione.

Azure SQL Database

Autenticação Azure Active Directory com nome de usuário e senha

Provider=MSOLEDBSQL;Data Source=Servidor;Initial Catalog=BancoDeDados;Authentication=ActiveDirectoryPassword;User ID=Usuario;Password=Senha;Use Encryption for Data=true;

Autenticação Azure Active Directory com token de acesso

Provider=MSOLEDBSQL;Data Source=Servidor;Initial Catalog=BancoDeDados;Access Token=myAccessToken;Use Encryption for Data=true;

Autenticação Azure Active Directory MSI

Provider=MSOLEDBSQL;Data Source=Servidor;Initial Catalog=BancoDeDados;Authentication=ActiveDirectoryMSI;User ID=myObjectId;Use Encryption for Data=true;

Autenticação integrada do Azure Active Directory

Provider=MSOLEDBSQL;Data Source=Servidor;Initial Catalog=BancoDeDados;Authentication=ActiveDirectoryIntegrated;Use Encryption for Data=true;

Autenticação integrada do Windows usando SSPI

Provider=MSOLEDBSQL;Data Source=Servidor;Initial Catalog=BancoDeDados;Authentication=ActiveDirectoryIntegrated;Use Encryption for Data=true;

Autenticação interativa Azure Active Directory

Provider=MSOLEDBSQL;Data Source=Servidor;Initial Catalog=BancoDeDados;Authentication=ActiveDirectoryInteractive;User ID=Usuario;Use Encryption for Data=true;

Autenticação SQL

Provider=MSOLEDBSQL;Data Source=Servidor;Initial Catalog=BancoDeDados;Authentication=SqlPassword;User ID=Usuario;Password=Senha;Use Encryption for Data=true;