Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier les répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer de répertoire.
S’applique à :SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
Important
SQL Server Native Client (SNAC) n’est pas fourni avec :
- 2022 - SQL Server 16 (16.x) et versions ultérieures
- SQL Server Management Studio 19 et versions ultérieures
SQL Server Native Client (SQLNCLI ou SQLNCLI11) et le fournisseur Microsoft OLE DB pour SQL Server (SQLOLEDB) hérité ne sont pas recommandés pour le développement de nouvelles applications.
Pour les nouveaux projets, utilisez l'un des pilotes suivants :
Pour SQLNCLI qui est fourni en tant que composant du moteur de base de données SQL Server (versions 2012 à 2019), consultez cette exception du cycle de vie du support.
SQL Server chiffre toujours les paquets réseau associés à l’ouverture de session. Si aucun certificat n’a été provisionné sur le serveur lors du démarrage, SQL Server génère un certificat auto-signé utilisé pour chiffrer les paquets de connexion.
Les certificats auto-signés ne garantissent pas la sécurité. La négociation chiffrée est basée sur NT LAN Manager (NTLM). Vous devez approvisionner un certificat vérifiable sur SQL Server pour une connectivité sécurisée. Le protocole Transport Security Layer (TLS) peut être sécurisé uniquement avec la validation de certificat.
Les applications peuvent également demander le chiffrement de tout le trafic réseau à l’aide de mots clés de chaîne de connexion ou de propriétés de connexion. Les mots clés sont « Chiffrer » pour ODBC et OLE DB lors de l’utilisation d’une chaîne de fournisseur avec IDbInitialize::Initialize, ou « Utiliser le chiffrement pour les données » pour ADO et OLE DB lors de l’utilisation d’une chaîne d’initialisation avec IDataInitialize. Cela peut également être configuré par le Gestionnaire de configuration SQL Server à l’aide de l’option Forcer le chiffrement du protocole et en configurant le client pour demander des connexions chiffrées. Par défaut, le chiffrement de tout le trafic réseau pour une connexion nécessite qu’un certificat soit provisionné sur le serveur. En définissant votre client pour approuver le certificat sur le serveur, vous êtes vulnérable aux attaques man-in-the-middle. Si vous déployez un certificat vérifiable sur le serveur, vérifiez que vous modifiez les paramètres du client concernant l’approbation du certificat FALSE.
Pour plus d’informations sur les mots clés chaîne de connexion, consultez Utilisation de mots clés de chaîne de connexion avec SQL Server Native Client.
Pour activer le chiffrement à utiliser lorsqu’un certificat n’est pas provisionné sur le serveur, le Gestionnaire de configuration SQL Server peut être utilisé pour définir à la fois le chiffrement de protocole forcé et les options de certificat de serveur d’approbation . Dans ce cas, le chiffrement utilise un certificat de serveur auto-signé sans validation si aucun certificat vérifiable n’a été provisionné sur le serveur.
Les applications peuvent également utiliser le TrustServerCertificate mot clé ou son attribut de connexion associé pour garantir que le chiffrement a lieu. Les paramètres d’application ne réduisent jamais le niveau de sécurité défini par le Gestionnaire de configuration du client SQL Server, mais peuvent le renforcer. Par exemple, si Force Protocol Encryption n’est pas défini pour le client, une application peut demander le chiffrement lui-même. Pour garantir le chiffrement même lorsqu’un certificat de serveur n’est pas approvisionné, une application peut demander le chiffrement et TrustServerCertificate. Toutefois, si TrustServerCertificate n’est pas activé dans la configuration du client, un certificat de serveur provisionné est toujours nécessaire. Le tableau ci-dessous décrit l'ensembles des scénarios :
| Paramètre client Forcer le chiffrement du protocole | Paramètre client Faire confiance au certificat de serveur | Chaîne de connexion/attribut de connexion Encrypt/Use Encryption for Data | Chaîne de connexion/attribut de connexion Trust Server Certificate | Résultats |
|---|---|---|---|---|
| Non | N/A | Non (par défaut) | Ignoré | Aucun chiffrement ne se produit. |
| Non | N/A | Oui | Non (par défaut) | Le chiffrement se produit uniquement s’il existe un certificat de serveur vérifiable, sinon la tentative de connexion échoue. |
| Non | N/A | Oui | Oui | Le chiffrement se produit toujours, mais peut utiliser un certificat de serveur auto-signé. |
| Oui | Non | Ignoré | Ignoré | Le chiffrement se produit uniquement s’il existe un certificat de serveur vérifiable, sinon la tentative de connexion échoue. |
| Oui | Oui | Non (par défaut) | Ignoré | Le chiffrement se produit toujours, mais peut utiliser un certificat de serveur auto-signé. |
| Oui | Oui | Oui | Non (par défaut) | Le chiffrement se produit uniquement s’il existe un certificat de serveur vérifiable, sinon la tentative de connexion échoue. |
| Oui | Oui | Oui | Oui | Le chiffrement se produit toujours, mais peut utiliser un certificat de serveur auto-signé. |
Attention
Le tableau précédent fournit uniquement un guide sur le comportement du système dans différentes configurations. Pour une connectivité sécurisée, assurez-vous que le client et le serveur nécessitent un chiffrement. Vérifiez également que le serveur a un certificat vérifiable et que le paramètre TrustServerCertificate sur le client est défini sur FALSE.
Fournisseur OLE DB SQL Server Native Client
Le fournisseur OLE DB SQL Server Native Client prend en charge le chiffrement sans validation via l’ajout de la propriété d’initialisation de la SSPROP_INIT_TRUST_SERVER_CERTIFICATE source de données, qui est implémentée dans le DBPROPSET_SQLSERVERDBINIT jeu de propriétés. En outre, un nouveau mot clé de chaîne de connexion, TrustServerCertificatea été ajouté. Elle accepte ou yes prend no des valeurs ; no est la valeur par défaut. Lorsque vous utilisez des composants de service, il accepte ou false valeurs true ; false est la valeur par défaut.
Pour plus d’informations sur les améliorations apportées au DBPROPSET_SQLSERVERDBINIT jeu de propriétés, consultez Propriétés d’initialisation et d’autorisation (fournisseur OLE DB Native Client).
Pilote ODBC SQL Server Native Client
Le pilote ODBC SQL Server Native Client prend en charge le chiffrement sans validation via des ajouts aux fonctions SQLSetConnectAttr et SQLGetConnectAttr .
SQL_COPT_SS_TRUST_SERVER_CERTIFICATE a été ajouté pour accepter l’un ou l’autre SQL_TRUST_SERVER_CERTIFICATE_YESSQL_TRUST_SERVER_CERTIFICATE_NO, avec SQL_TRUST_SERVER_CERTIFICATE_NO la valeur par défaut. En outre, un nouveau mot clé de chaîne de connexion, TrustServerCertificatea été ajouté. Elle accepte ou yes prend no des valeurs ; no est la valeur par défaut.