解锁MSSQL远程访问之路

1. 概述

SQLServer是目前Windows平台上较为流行的数据库管理系统之一,很多应用程序都依赖于它来存储和管理数据。但是默认情况下,SQLServer不允许远程访问,只能在本地访问。如果需要在远程主机上访问SQLServer,则需要进行一些配置工作。本文将介绍如何解锁MSSQL远程访问。

2. 开启SQLServer远程访问

2.1 检查SQLServer是否启用了TCP/IP协议

在SQLServer允许远程访问之前,首先需要确保已启用TCP/IP协议。可通过如下步骤来检查和启用:

打开SQLServer配置管理器(SQL Server Configuration Manager)

选择“SQL Server网络配置(SQL Server Network Configuration)”

选择“SQL Server服务(SQL Server Services)”,在右侧面板中选择相应的SQLServer服务

右键选择“属性(Properties)”,在弹出的对话框中选择“网络配置(Network Configuration)”,确保“TCP/IP”协议已启用

如果TCP/IP协议未启用,可右键“TCP/IP”协议,选择“启用(Enable)”来启用它。需重新启动SQLServer服务后,更改才能生效。

2.2 配置SQLServer防火墙

在启用了TCP/IP协议后,还需要在防火墙中开放相应端口,以便外部能够访问SQLServer服务。SQL Server默认使用TCP端口1433,因此需要在防火墙上开放该端口:

netsh advfirewall firewall add rule name="SQLServer" protocol=TCP dir=in localport=1433 action=allow

除了TCP端口1433外,SQLServer还会使用动态端口(Dynamic Ports)来接收传入连接,而防火墙可能会对该端口进行阻塞。因此,需要在防火墙中允许进程“sqlservr.exe”访问网络:

netsh advfirewall firewall add rule name="SQLServer" dir=in action=allow program="%ProgramFiles%\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\Binn\sqlservr.exe" enable=yes

3. 配置SQLServer允许远程连接

3.1 启用SQLServer身份验证模式

默认情况下,SQLServer使用Windows身份验证模式,不允许用于SQL Server认证。因此,在开启远程连接前,需要先启用SQLServer身份验证模式。可通过如下步骤启用:

打开SQL Server管理工具(SQL Server Management Studio)

连接到SQLServer数据库

右键选择相应的服务器,选择“属性”

在弹出的对话框中选择“安全性”,将“服务器身份验证”设置为“SQL Server和Windows身份验证模式”

点击“确定”保存更改

在SQLServer服务上重新启动该实例

3.2 创建SQLServer账户并授权

启用SQLServer身份验证模式后,需要创建SQL Server账户并授权,以便在远程访问时使用该账户进行身份验证。可通过如下命令创建账户:

CREATE LOGIN <username> WITH PASSWORD = '<password>', CHECK_POLICY = OFF

然后,通过以下命令为该账户授予连接权限:

USE <databasename>;

CREATE USER <username> FOR LOGIN <username>;

EXEC sp_addrolemember N'db_owner', N'<username>';

3.3 开启SQLServer远程连接

完成了前面两个步骤后,需要在SQLServer上开启远程连接。该设置可以通过如下命令完成:

USE Master;

EXEC sp_configure 'remote access', 1;

RECONFIGURE;

3.4 重启SQLServer实例

完成以上步骤后,需要重新启动SQLServer实例才能使更改生效。可通过如下命令重启SQL Server实例:

USE Master;

NET STOP MSSQLSERVER

NET START MSSQLSERVER

4. 测试SQLServer远程连接

完成以上步骤后,就可以远程连接SQLServer实例了。可使用如下命令测试SQLServer是否正常工作:

sqlcmd -U <username> -P <password> -S <servername>

其中,<username>为上文创建的SQLServer账户名称,<password>为该账户的密码,<servername>为安装SQLServer的计算机名称。如果连接成功,即可在命令提示符下输入SQL语句执行操作。

5. 总结

本文介绍了如何解锁MSSQL远程访问。主要包括开启SQLServer TCP/IP协议、配置SQLServer防火墙、启用SQLServer身份验证模式、创建SQL Server账户并授权、开启SQLServer远程连接以及重启SQLServer实例等步骤。通过本文提供的方法,可以轻松地在远程主机上访问SQLServer数据库。

数据库标签