新增文章
文章标题
分类
C#
云星空
K3 BOS
K3 功能
用友
Oracle
python
SQL
MySql
PHP
HTML
script
windows
Access
影视后期
财务
服务
生活
内容
要让其他电脑访问 SQL Server,需要在 **SQL Server 配置** 和 **网络/防火墙设置** 上进行配置。以下是详细步骤: --- ## **1. 确保 SQL Server 已启用 TCP/IP 协议** ### **步骤 1:打开 SQL Server 配置管理器** 1. 按 `Win + R`,输入 `SQLServerManager<版本号>.msc`(如 `SQLServerManager15.msc` 适用于 SQL Server 2019)。 - 或通过 **控制面板 → 管理工具 → SQL Server 配置管理器** 打开。 2. 展开 **SQL Server 网络配置** → **协议**(对应实例,如 `MSSQLSERVER` 或命名实例)。 - 如果是默认实例(`MSSQLSERVER`),直接选择 `MSSQLSERVER` 下的 **协议**。 - 如果是命名实例(如 `SQLEXPRESS`),选择对应实例名的 **协议**。 3. 确保 **TCP/IP** 协议已启用(右键 → **启用**)。 - 如果未启用,右键 **TCP/IP** → **启用**,然后重启 SQL Server 服务。 --- ### **步骤 2:配置 TCP/IP 端口** 1. 右键 **TCP/IP** → **属性** → **IP 地址** 选项卡。 2. 找到 `IPAll` 部分: - **TCP 端口**:确保已设置端口(默认 `1433`,可修改为其他端口如 `1688`)。 - **TCP 动态端口**:如果不需要动态端口,留空或删除数值。 3. 如果是命名实例,默认可能使用动态端口(如 `1688`),建议固定端口(如 `1433`)。 --- ### **步骤 3:重启 SQL Server 服务** 1. 在 **SQL Server 服务** 中(SQL Server 配置管理器 → 服务): - 右键 **SQL Server (实例名)** → **重新启动**。 2. 确保服务状态变为 **“正在运行”**。 --- ## **2. 检查 Windows 防火墙设置** SQL Server 默认端口(如 `1433`)需要放行,否则外部无法访问。 ### **方法 1:允许 SQL Server 端口通过防火墙** 1. 打开 **Windows Defender 防火墙**(或第三方防火墙如火绒)。 2. 进入 **高级设置** → **入站规则** → **新建规则**。 3. 选择 **端口** → 点击 **下一步**。 4. 选择 **TCP**,并输入端口号(如 `1433` 或自定义端口)→ 点击 **下一步**。 5. 选择 **允许连接** → 点击 **下一步**。 6. 根据需要勾选适用的网络类型(域、专用、公用)→ 点击 **下一步**。 7. 输入规则名称(如 `SQL Server Port 1433`)→ 完成。 ### **方法 2:直接放行 `sqlservr.exe`** 1. 在 **入站规则** 中新建规则 → 选择 **程序** → 点击 **下一步**。 2. 浏览到 SQL Server 主程序路径(默认): ``` C:\Program Files\Microsoft SQL Server\MSSQLXX.MSSQLSERVER\MSSQL\Binn\sqlservr.exe ``` - `XX` 是 SQL Server 版本号(如 `MSSQL15` 对应 SQL Server 2019)。 3. 允许连接 → 完成规则。 --- ## **3. 检查 SQL Server 身份验证模式** 默认情况下,SQL Server 可能仅允许 **Windows 身份验证**,需启用 **SQL Server 和 Windows 身份验证模式**。 ### **步骤 1:修改身份验证模式** 1. 打开 **SQL Server Management Studio (SSMS)**,连接 SQL Server。 2. 右键服务器实例 → **属性** → **安全性** 选项卡。 3. 选择 **SQL Server 和 Windows 身份验证模式** → 点击 **确定**。 4. 重启 SQL Server 服务(必须重启才能生效)。 --- ### **步骤 2:创建 SQL Server 登录账户** 1. 在 SSMS 中,展开 **安全性 → 登录名**。 2. 右键 → **新建登录名**。 3. 输入用户名(如 `sa` 或自定义账户)。 4. 在 **服务器角色** 中勾选 `sysadmin`(谨慎操作,仅限管理员)。 5. 在 **用户映射** 中勾选目标数据库,并分配权限。 6. 点击 **确定** 保存。 --- ## **4. 测试外部连接** ### **方法 1:使用 SQL Server Management Studio (SSMS)** 1. 在另一台电脑上打开 SSMS。 2. 输入服务器名称: - **本地网络**:`服务器IP,端口`(如 `192.168.1.100,1433`)。 - **主机名**:如果 DNS 可解析,可直接用主机名(如 `SQLServer01`)。 - 如果是命名实例,格式为 `服务器IP\实例名,端口`(如 `192.168.1.100\SQLEXPRESS,1433`)。 3. 选择身份验证方式: - **SQL Server 身份验证**:输入用户名和密码。 - **Windows 身份验证**:需确保网络信任关系。 --- ### **方法 2:使用命令行测试** 在另一台电脑上运行: ```cmd sqlcmd -S 服务器IP,端口 -U 用户名 -P 密码 ``` 示例: ```cmd sqlcmd -S 192.168.1.100,1433 -U sa -P 123456 ``` 如果成功,会显示 `1>` 提示符。 --- ## **5. 其他注意事项** ### **5.1 检查 SQL Server 是否监听正确 IP** 1. 在 SSMS 中运行以下查询: ```sql EXEC xp_readerrorlog 0, 1, 'Server is listening on'; ``` - 确认输出中包含目标 IP 和端口(如 `0.0.0.0:1433` 或 `[::]:1433` 表示监听所有 IPv4/IPv6 地址)。 2. 如果仅监听 `127.0.0.1`(本地回环),需修改 SQL Server 配置: - 在 **SQL Server 配置管理器** → **TCP/IP 属性** → **IP 地址** 选项卡: - 确保 `IPAll` 的 `TCP 动态端口` 为空,`TCP 端口` 设置为固定值(如 `1433`)。 - 确保所有 `IPx`(如 `IP1`、`IP2`)的 **已启用** 设为 **是**。 --- ### **5.2 检查网络连通性** 1. 在客户端电脑上测试是否能 ping 通 SQL Server: ```cmd ping 服务器IP ``` 2. 测试端口是否开放: ```cmd telnet 服务器IP 1433 ``` - 如果未安装 `telnet`,可通过 **控制面板 → 程序 → 启用或关闭 Windows 功能** 安装。 --- ### **5.3 命名实例的特殊配置** 如果使用命名实例(如 `SQLEXPRESS`): 1. 确保 **SQL Server Browser 服务** 已启动: - 在 **服务管理器** 中找到 `SQL Server Browser`,设置为 **自动启动** 并启动服务。 2. 客户端连接时需指定实例名: - 格式:`服务器IP\实例名,端口`(如 `192.168.1.100\SQLEXPRESS,1433`)。 --- ## **6. 常见问题解决** | 问题 | 解决方案 | |------|----------| | **无法连接,提示“拒绝连接”** | 检查防火墙、SQL Server 是否运行、身份验证模式。 | | **连接超时** | 检查网络连通性(ping/端口测试),确保 SQL Server 监听正确 IP。 | | **仅限本地访问** | 检查 SQL Server 是否绑定到 `127.0.0.1`,修改为 `0.0.0.0`。 | | **命名实例无法连接** | 确保 SQL Server Browser 服务运行,并正确指定实例名。 | --- ## **总结步骤** 1. **启用 TCP/IP 协议** 并固定端口(如 `1433`)。 2. **放行防火墙端口** 或 `sqlservr.exe`。 3. **启用 SQL Server 身份验证模式** 并创建登录账户。 4. **测试网络连通性**(ping/端口测试)。 5. **客户端使用 `IP,端口` 或 `IP\实例名,端口` 连接**。 如果仍有问题,请提供具体的错误信息以便进一步排查!
返回
保存