Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Aplica-se a: .NET Framework
.NET
.NET Standard
O Microsoft.Data.SqlClient possui um objeto Connection que herda de DbConnection e um(a) ConnectionString propriedade específica do(a) fornecedor(a). A sintaxe específica da string de ligação para o fornecedor SqlClient está documentada na propriedade ConnectionString. Para obter mais informações sobre a sintaxe da cadeia de conexão, consulte ConnectionString.
Construtores de cadeias de conexão
O Microsoft SqlClient Data Provider para SQL Server introduziu o seguinte construtor de stringas de ligação.
Os construtores de strings de ligação permitem-te construir strings de ligação sintaticamente válidas em tempo de execução, por isso não precisas de concatenar manualmente os valores das strings de ligação no teu código. Para obter mais informações, consulte Construtores de cadeias de conexão.
Windows authentication
Recomendamos o uso da Autenticação do Windows (por vezes referida como segurança integrada) para se ligar às fontes de dados que a suportam. A tabela seguinte mostra a sintaxe de autenticação do Windows usada com o Microsoft SqlClient Data Provider para SQL Server.
| Provider | Sintaxe |
|---|---|
SqlClient |
Integrated Security=true;-- or --Integrated Security=SSPI; |
Cadeias de conexão SqlClient
A sintaxe de uma SqlConnection cadeia de conexão está documentada SqlConnection.ConnectionString na propriedade. Você pode usar a ConnectionString propriedade para obter ou definir uma cadeia de conexão para um banco de dados do SQL Server. As palavras-chave da cadeia de ligação também mapeiam para propriedades no SqlConnectionStringBuilder.
Importante
A configuração padrão para a Persist Security Info palavra-chave é false. Defini-lo como true ou yes permite que informações confidenciais de segurança, incluindo o ID de usuário e a senha, sejam obtidas da conexão após a conexão ter sido aberta. Mantenha Persist Security Info definido para false garantir que uma fonte não confiável não tenha acesso a informações confidenciais da cadeia de conexão.
Autenticação do Windows com SqlClient
Cada uma das seguintes formas de sintaxe utiliza a Autenticação do Windows para se ligar à base de dados AdventureWorks num servidor local.
"Persist Security Info=False;Integrated Security=true;
Initial Catalog=AdventureWorks;Server=MSSQL1;Encrypt=True;"
"Persist Security Info=False;Integrated Security=SSPI;
database=AdventureWorks;server=(local);Encrypt=True;"
"Persist Security Info=False;Trusted_Connection=True;
database=AdventureWorks;server=(local);Encrypt=True;"
Autenticação do SQL Server com SqlClient
A autenticação do Windows é preferida para ligação ao SQL Server. No entanto, se a Autenticação do SQL Server for necessária, use a sintaxe a seguir para especificar um nome de usuário e uma senha.
"Persist Security Info=False;User ID=<user name>;Password=<password>;Initial Catalog=AdventureWorks;Server=MySqlServer;Encrypt=True;"
Quando se liga ao Azure SQL Database ou ao Azure Synapse Analytics e fornece um nome de utilizador no formato user@servername, certifique-se de que o servername valor no nome de utilizador corresponde ao valor fornecido para Server=.
Observação
A autenticação do Windows tem precedência sobre os logons do SQL Server. Se especificar tanto Integrated Security=true como um nome de utilizador e palavra-passe, o nome de utilizador e a palavra-passe serão ignorados e a autenticação do Windows será utilizada.
Conectar-se a uma instância nomeada do SQL Server
Para se conectar a uma instância nomeada do SQL Server, use a sintaxe nome do servidor\nome da instância.
"Data Source=MySqlServer\MSSQL1;"
Você também pode definir a DataSource propriedade do para o nome da instância ao criar uma cadeia de SqlConnectionStringBuilder conexão. A DataSource propriedade de um SqlConnection objeto é somente leitura.
Alterações de versão do sistema de tipo
A Type System Version palavra-chave em um SqlConnection.ConnectionString especifica a representação do lado do cliente dos tipos do SQL Server. Para mais informações sobre a Type System Version palavra-chave, veja SqlConnection.ConnectionString.
Liga-te e anexa-te a instâncias de utilizador do SQL Server Express
As instâncias de usuário são um recurso no SQL Server Express. Eles permitem que um usuário executado em uma conta local do Windows com privilégios mínimos anexe e execute um banco de dados do SQL Server sem exigir privilégios administrativos. Uma instância de usuário é executada com as credenciais do Windows do usuário, não como um serviço.
Para obter mais informações sobre como trabalhar com instâncias de usuário, consulte Instâncias de usuário do SQL Server Express.
Usar TrustServerCertificate
A TrustServerCertificate palavra-chave é usada ao ligar a uma instância SQL Server. Quando TrustServerCertificate está definido para true, a camada de transporte usa TLS/SSL para encriptar o canal e evitar a verificação da cadeia de certificados para validar a confiança.
- Nas versões anteriores ao Microsoft.Data.SqlClient 2.0, esta definição é ignorada quando
Encryptestá definida comoFalsee o certificado do servidor não é validado. - A partir da versão 2.0 do Microsoft.Data.SqlClient, mesmo que
Encryptesteja definidoFalse, a definição controla se a validação do certificado é realizada quando o servidor força a encriptação. - A partir da versão 5.0 do Microsoft.Data.SqlClient, esta definição é ignorada quando
Encryptestá definida comoStrict. O certificado do servidor é sempre validado no modoStrict.
Para mais informações, consulte Encriptação e validação de certificados.
"TrustServerCertificate=true;"
HostNameInCertificate
A partir da versão 5.0 do Microsoft.Data.SqlClient, o HostNameInCertificate é uma nova opção de ligação. A validação do certificado do servidor garante que o nome comum (CN) ou o nome alternativo da entidade (SAN) no certificado corresponda ao nome do servidor ao qual está sendo conectado. Em alguns casos, como alias DNS, o nome do servidor pode não corresponder ao CN ou SAN. O valor HostNameInCertificate pode ser usado para especificar um CN ou SAN diferente e esperado no certificado do servidor.
"HostNameInCertificate=myserver.example.com"
ServerCertificate
A partir da versão 5.1 do Microsoft.Data.SqlClient, ServerCertificate existe uma nova opção de ligação. O valor padrão da configuração de conexão ServerCertificate é uma cadeia de caracteres vazia. Quando Encrypt está definido para Mandatory ou Strict, ServerCertificate pode ser usado para especificar um caminho no sistema de ficheiros para um ficheiro de certificado para corresponder ao certificado TLS do servidor. Para que o certificado seja válido, o certificado especificado deve ser uma correspondência exata. Os formatos de certificados aceites são PEM, DER e CER. Aqui está um exemplo:
"Data Source=...;Encrypt=Strict;ServerCertificate=C:\certificates\server.cer"
Ativar encriptação
Para permitir a encriptação quando um certificado não foi provisionado no servidor, a propriedade de ligação do Certificado do Servidor de Confiança deve ser definida para True. Neste caso, a encriptação utiliza um certificado de servidor auto-assinado sem validação, uma vez que nenhum certificado verificável foi provisionado no servidor.
As definições da aplicação não conseguem reduzir o nível de segurança configurado no SQL Server, mas podem opcionalmente reforçá-lo. Uma aplicação pode solicitar encriptação definindo as TrustServerCertificate palavras-chave e Encrypt para true, garantindo que a encriptação ocorre mesmo quando um certificado de servidor não foi provisionado. No entanto, se TrustServerCertificate não estiver ativado na configuração do cliente, ainda é necessário um certificado de servidor provisionado.
A tabela a seguir descreve todos os casos.
| Encriptar cadeia/atributo de ligação | Cadeia de conexão/atributo do Certificado de Servidor Confiável | Result |
|---|---|---|
| Não/Opcional | Ignored | Nenhuma criptografia ocorre. |
| Sim/Obrigatório | Não | A criptografia ocorre somente se houver um certificado de servidor verificável, caso contrário, a tentativa de conexão falhará. |
| Sim/Obrigatório | Yes | A criptografia sempre ocorre, mas pode usar um certificado de servidor autoassinado. |
| Rigoroso 1 | Ignored | A encriptação ocorre sempre e deve usar um certificado de servidor verificável, caso contrário a tentativa de ligação falha. |
1 A encriptação rigorosa só está disponível a partir do Microsoft.Data.SqlClient versão 5.0.
Para mais informações, incluindo o comportamento em versões anteriores, consulte Encriptação e validação de certificados.
Consulte também
Cadeias de conexão
Encriptação e validação de certificados
Ligação a uma fonte de dados
Microsoft ADO.NET para SQL Server