Your company uses Microsoft Defender for Cloud to protect Azure resources. A critical application uses an Azure SQL Database. You need to ensure that all queries to the database are encrypted in transit and that the encryption protocol is the most secure version available. Which configuration should you enforce?
Trap 1: Configure the database to reject unencrypted connections.
Configuring the database to reject unencrypted connections, via the 'Encryption' connection string property or a server-side encryption requirement, forces all traffic to be transmitted over an encrypted channel. However, this measure does not control which TLS protocol version is negotiated during the handshake; a client could still connect using deprecated TLS 1.0 or 1.1, which are weak and have known vulnerabilities. Therefore, this approach fails to guarantee the specified minimum TLS version.
Trap 2: Set the connection policy to Proxy and force TCP.
The connection policy in Azure SQL Database—either Proxy or Redirect—controls how client connections are routed (through an intermediary gateway or directly to the database) and does not influence the TLS handshake or the protocol version used. Forcing TCP is likewise irrelevant because TCP is already the underlying transport protocol for SQL connections and has no bearing on encryption settings. This option changes nothing about TLS version enforcement, so it cannot meet the requirement.
Trap 3: Enable 'Force SSL' on the database.
Enabling 'Force SSL' on the database (equivalent to requiring an encrypted connection) ensures that clients establish an encrypted session before data is exchanged. While this protects data in transit, it does not dictate the specific TLS version; a client instructing the connection with TLS 1.0 or 1.1 would still be accepted by the server if no minimum version policy is set. Thus, this approach does not guarantee that the connection uses TLS 1.2 or higher.
- A
Set the minimal TLS version to 1.2 in the server's firewall rules.
In Azure SQL Database, the 'Minimal TLS version' setting is located in the server's connection security blade, typically alongside firewall rules under 'Firewalls and virtual networks.' Setting this to 1.2 explicitly rejects any connection attempt using TLS 1.0 or TLS 1.1, enforcing a mandatory minimum protocol version on the server side. This directly satisfies the requirement that all client connections use at least TLS 1.2.
- B
Configure the database to reject unencrypted connections.
Why wrong: Configuring the database to reject unencrypted connections, via the 'Encryption' connection string property or a server-side encryption requirement, forces all traffic to be transmitted over an encrypted channel. However, this measure does not control which TLS protocol version is negotiated during the handshake; a client could still connect using deprecated TLS 1.0 or 1.1, which are weak and have known vulnerabilities. Therefore, this approach fails to guarantee the specified minimum TLS version.
- C
Set the connection policy to Proxy and force TCP.
Why wrong: The connection policy in Azure SQL Database—either Proxy or Redirect—controls how client connections are routed (through an intermediary gateway or directly to the database) and does not influence the TLS handshake or the protocol version used. Forcing TCP is likewise irrelevant because TCP is already the underlying transport protocol for SQL connections and has no bearing on encryption settings. This option changes nothing about TLS version enforcement, so it cannot meet the requirement.
- D
Enable 'Force SSL' on the database.
Why wrong: Enabling 'Force SSL' on the database (equivalent to requiring an encrypted connection) ensures that clients establish an encrypted session before data is exchanged. While this protects data in transit, it does not dictate the specific TLS version; a client instructing the connection with TLS 1.0 or 1.1 would still be accepted by the server if no minimum version policy is set. Thus, this approach does not guarantee that the connection uses TLS 1.2 or higher.