You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure SQL Database始终启用TLS?JDBC连接加密疑问求助

为什么Azure SQL Database的JDBC连接始终使用TLS加密?

1. Azure SQL Database强制要求TLS加密

Azure SQL Database默认强制所有客户端连接使用TLS加密,这是平台内置的安全策略。不管客户端是否主动设置加密参数,服务器端都会拒绝非加密连接请求,或自动将连接升级为加密模式,以此保障数据传输过程的安全性。

2. SQL Server JDBC驱动的适配逻辑

你使用的com.microsoft.sqlserver.jdbc.SQLServerDataSource驱动,针对Azure SQL Database的专属域名(如*.database.windows.net)做了特殊适配:即使你调用ds.setEncrypt(false),驱动也会自动忽略该设置,强制启用TLS加密。这是驱动为了符合Azure SQL的安全规则而内置的行为,避免连接因违反服务器要求而失败。

3. 官方文档的明确说明

微软官方明确规定,Azure SQL Database要求所有传入连接必须使用TLS 1.2或更高版本,不支持任何非加密连接。无论客户端如何配置加密参数,服务器都会强制使用加密方式建立连接,不存在禁用加密的选项。

你的连接代码示例:

public static Connection getConnectionObject() {
    SQLServerDataSource ds = new SQLServerDataSource();
    ds.setServerName("azuresqldbserver0821.database.windows.net");
    ds.setDatabaseName("azuresqldb0821");
    ds.setPortNumber(1433);
    ds.setUser("root0817");
    ds.setPassword("<YourStrong@Passw0rd>");

    ds.setEncrypt(false);// 无论是否设置或设为false,TCP包仍会被TLS加密
    ds.setTrustServerCertificate(true);
    Connection conn;
    try {
        conn = ds.getConnection();
    } catch (Exception e) {
        e.printStackTrace();
        return null;
    }
    return conn;
}

内容的提问来源于stack exchange,提问作者Deocareza NoevieJean

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 22:15:35