如何配置 SQL Server 混合身份验证模式
文章目录
- 1. 启用 SQL Server 混合身份验证模式
- 2. 创建 SQL Server 登录账户
- 3. 启用 TCP/IP 协议
- 4. 配置防火墙
- 5. 测试远程连接
- 6. Java 代码连接 SQL Server
- 添加 JDBC 驱动
- Java 连接示例
- 常见问题排查
1. 启用 SQL Server 混合身份验证模式
- 操作步骤:
- 打开 SQL Server Management Studio (SSMS)。
- 右键点击服务器实例 → 属性 → 安全性。
- 选择 SQL Server 和 Windows 身份验证模式。
- 点击 确定 并 重启 SQL Server 服务(通过 SQL Server 配置管理器)。
2. 创建 SQL Server 登录账户
- 操作步骤:
- 在 SSMS 中展开 安全性 → 登录名。
- 右键点击 登录名 → 新建登录名。
- 输入用户名(如
java_user
),选择 SQL Server 身份验证。 - 设置密码,取消勾选 强制实施密码策略(可选)。
- 在 用户映射 标签页中,勾选目标数据库(如
YourDatabase
),分配角色(如db_owner
或自定义权限)。
3. 启用 TCP/IP 协议
- 操作步骤:
- 打开 SQL Server 配置管理器。
- 展开 SQL Server 网络配置 → MSSQLSERVER 的协议。
- 右键启用 TCP/IP。
- 双击 TCP/IP → IP 地址 标签页 → 在 IPAll 部分设置 TCP 端口为
1433
(默认端口)。 - 重启 SQL Server 服务。
4. 配置防火墙
- 操作步骤:
- 打开 Windows 防火墙 → 高级设置。
- 添加入站规则:允许端口
1433
(TCP)。 - 如果使用非默认端口,替换为实际端口号。
5. 测试远程连接
- 使用 Telnet 测试端口:
若连接失败,检查防火墙或网络设置。telnet your_server_ip 1433
6. Java 代码连接 SQL Server
添加 JDBC 驱动
- Maven 依赖(推荐):
<dependency><groupId>com.microsoft.sqlserver</groupId><artifactId>mssql-jdbc</artifactId><version>12.4.2.jre11</version> <!-- 根据 Java 版本调整 --> </dependency>
- 手动下载:Microsoft JDBC Driver
Java 连接示例
import java.sql.Connection;
import java.sql.DriverManager;public class SQLServerDemo {public static void main(String[] args) {String url = "jdbc:sqlserver://localhost:1433;databaseName=YourDatabase;encrypt=true;trustServerCertificate=true";String user = "java_user";String password = "your_password";try (Connection conn = DriverManager.getConnection(url, user, password)) {System.out.println("连接成功!");} catch (Exception e) {e.printStackTrace();}}
}
常见问题排查
-
连接超时/拒绝:
- 检查 SQL Server 是否允许远程连接(通过 SSMS → 服务器属性 → 连接 → 勾选 允许远程连接)。
- 验证防火墙是否开放端口。
- 确保 SQL Server 服务正在运行。
-
身份验证失败:
- 确认用户名/密码正确。
- 检查登录名是否映射到目标数据库。
-
驱动问题:
- 使用最新 JDBC 驱动,匹配 Java 版本(如
jre8
或jre11
)。 - 添加
encrypt=true;trustServerCertificate=true
避免 SSL 错误(测试环境)。
- 使用最新 JDBC 驱动,匹配 Java 版本(如
完成以上步骤后,Java 应用程序即可通过 JDBC 连接 SQL Server。
提示:更多内容可以访问Clang’s Blog:https://www.clang.asia