Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
O SQL Server sempre criptografa pacotes de rede associados a logon. Se nenhum certificado tiver sido provisionado no servidor quando ele for iniciado, o SQL Server gerará um certificado autoassinado que é usado para criptografar pacotes de logon.
Os aplicativos também podem solicitar a criptografia de todo o tráfego de rede usando palavras-chave de cadeia de conexão ou propriedades de conexão. As palavras-chave são "Criptografar" para ODBC e OLE DB ao usar uma cadeia de caracteres de provedor com IDbInitialize::Initialize ou "Usar Criptografia para Dados" para ADO e OLE DB ao usar uma cadeia de caracteres de inicialização com IDataInitialize. Isso também pode ser configurado pelo SQL Server Configuration Manager usando a opção Forçar Criptografia de Protocolo . Por padrão, a criptografia de todo o tráfego de rede para uma conexão requer que um certificado seja provisionado no servidor.
Para obter informações sobre palavras-chave de cadeia de conexão, consulte Usando palavras-chave de cadeia de conexão com o SQL Server Native Client.
Para permitir que a criptografia seja usada quando um certificado não tiver sido provisionado no servidor, o SQL Server Configuration Manager pode ser usado para definir as opções Forçar Criptografia de Protocolo e Certificado do Servidor confiável . Nesse caso, a criptografia usará um certificado de servidor autoassinado sem validação se nenhum certificado verificável tiver sido provisionado no servidor.
Os aplicativos também podem usar a palavra-chave "TrustServerCertificate" ou seu atributo de conexão associado para garantir que a criptografia ocorra. As configurações do aplicativo nunca reduzem o nível de segurança definido pelo SQL Server Client Configuration Manager, mas podem fortalecê-lo. Por exemplo, se a Criptografia de Protocolo force não estiver definida para o cliente, um aplicativo poderá solicitar a criptografia propriamente dita. Para garantir a criptografia mesmo quando um certificado de servidor não foi provisionado, um aplicativo pode solicitar criptografia e "TrustServerCertificate". No entanto, se "TrustServerCertificate" não estiver habilitado na configuração do cliente, um certificado de servidor provisionado ainda será necessário. A tabela a seguir descreve todos os casos:
| Configuração do cliente Forçar Criptografia de Protocolo | Configuração do cliente Confiar em Certificado do Servidor | Atributo de conexão/cadeia de conexão Criptografar/Usar criptografia de dados | Atributo de conexão/cadeia de conexão Confiar em Certificado do Servidor | Resultado |
|---|---|---|---|---|
| Não | Não aplicável | Não (padrão) | Ignorado | Não ocorre criptografia. |
| Não | Não aplicável | Sim | Não (padrão) | A criptografia ocorrerá somente se houver um certificado de servidor verificável, caso contrário, a tentativa de conexão falhará. |
| Não | Não aplicável | Sim | Sim | A criptografia sempre ocorre, mas pode usar um certificado do servidor autoassinado. |
| Sim | Não | Ignorado | Ignorado | A criptografia ocorrerá somente se houver um certificado de servidor verificável, caso contrário, a tentativa de conexão falhará. |
| Sim | Sim | Não (padrão) | Ignorado | A criptografia sempre ocorre, mas pode usar um certificado do servidor autoassinado. |
| Sim | Sim | Sim | Não (padrão) | A criptografia ocorrerá somente se houver um certificado de servidor verificável, caso contrário, a tentativa de conexão falhará. |
| Sim | Sim | Sim | Sim | A criptografia sempre ocorre, mas pode usar um certificado de servidor autoassinado. |
Provedor OLE DB do SQL Server Native Client
O provedor OLE DB do SQL Server Native Client dá suporte à criptografia sem validação por meio da adição da propriedade de inicialização da fonte de dados SSPROP_INIT_TRUST_SERVER_CERTIFICATE, que é implementada no conjunto de propriedades DBPROPSET_SQLSERVERDBINIT. Além disso, uma nova palavra-chave de cadeia de conexão, "TrustServerCertificate", conforme foi adicionado. Ele aceita valores sim ou não; não é o padrão. Ao usar componentes de serviço, ele aceita valores verdadeiros ou falsos; false é o padrão.
Para obter mais informações sobre aprimoramentos feitos no conjunto de propriedades DBPROPSET_SQLSERVERDBINIT, consulte Propriedades de Inicialização e Autorização.
Driver ODBC do SQL Server Native Client
O driver ODBC do SQL Server Native Client dá suporte à criptografia sem validação por meio de adições às funções SQLSetConnectAttr e SQLGetConnectAttr . SQL_COPT_SS_TRUST_SERVER_CERTIFICATE foi adicionado para aceitar SQL_TRUST_SERVER_CERTIFICATE_YES ou SQL_TRUST_SERVER_CERTIFICATE_NO, sendo SQL_TRUST_SERVER_CERTIFICATE_NO o padrão. Além disso, uma nova palavra-chave de cadeia de conexão, "TrustServerCertificate", foi adicionada. Ele aceita valores sim ou não; "não" é o padrão.