1. 前言
MS SQL Server是Microsoft公司的一款关系型数据库管理系统,常被用于企业级应用开发。在某些场合下,我们需要从外网连接到墙外的MS SQL Server数据库实例进行数据交互。本文将介绍如何走出墙外,链接外网MSSQL数据库。
2. 配置数据库服务器
2.1 开启数据库TCP/IP协议
首先,我们需要确认数据库连接协议是否开启。请打开MS SQL Server Management Studio,在左下角点击“SQL Server Configuration Manager”。
SQL Server Configuration Manager
在“SQL Server Configuration Manager”窗口中,点击“SQL Server Network Configuration”条目。如果你要连接的MSSQL服务安装在默认实例上,则展开“Protocols for MSSQLSERVER”条目,如果是命名实例,则展开“Protocols for [MSSQLSERVER]”。
SQL Server Network Configuration
确保TCP/IP协议已经启用,如果没有启用,右键选择“Enable”选项即可。
Enable TCP/IP
2.2 配置数据库服务端口
然后,我们需要确认数据库服务使用的端口是否允许外网访问。在同一条目下找到“IP Address”子项,在右侧找到你希望开放的协议(IPv4或IPv6)。如果你想打开IPv4协议,请确保“TCP Dynamic Ports”值为空,且“TCP Port”值为1433。如果你想打开IPv6协议,请确保“TCP Dynamic Ports”值为空,且“TCP Port”值为1434。
Configure IP Address
3. 配置数据库客户端
3.1 安装ODBC驱动
为了使用外网连接到MSSQL服务器,我们需要安装ODBC驱动。这里我们选择官方推荐的“Microsoft ODBC Driver for SQL Server”。你可以在官网下载适合你的操作系统版本的ODBC Driver软件包进行安装。
Microsoft ODBC Driver for SQL Server
3.2 创建ODBC数据源
在Windows操作系统上,ODBC管理器是一个内置的工具,我们可以在其中创建新的ODBC数据源。
打开“ODBC数据源管理器”(32位或64位),选择“系统 DSN”或“用户 DSN”,然后点击“添加”按钮。
ODBC数据源管理器
在弹出的“创建新的数据源”窗口中,选择“SQL Server Native Client x.x”驱动程序,设置数据源名称、服务器名称(或IP地址)、选择验证方式和登录信息,最后选择默认数据库,点击“下一步”。
在此窗口中可以选择你要使用的默认数据库,建议在高安全性要求下禁用此项,并在代码中指定要连接的数据库名称。
创建新的数据源
在下一个窗口中,可以选择默认语言和应该建立的网络连接类型。选择TCP/IP连接类型,输入服务器端口号(默认情况下是1433)。
默认语言和网络连接
完成配置后,你可以在“ODBC数据源管理器”窗口中看到当前系统已经添加的ODBC数据源。
ODBC数据源
4. 编写程序连接数据库
现在我们已经完成了服务端和客户端的配置,接下来就可进行外部访问数据库了。下面是连接到MSSQL数据库的Python代码示例:
import pyodbc
cnxn = pyodbc.connect('DRIVER={SQL Server Native Client x.x};SERVER=hostname,port;DATABASE=mydatabase;UID=username;PWD=password')
cursor = cnxn.cursor()
cursor.execute('SELECT TOP 10 * FROM mytable')
for row in cursor:
print(row)
这里需要注意:
1. replace中相应的参数替换为你事先配置好的相应参数。
2. 如果需要使用Windows集成身份验证模式登录,请替换给定的用户ID和密码为你的计算机域等同于登录名和密码。
3. 在登录后,你需要指定要连接到的数据库。如果你在此处指定了一个默认数据库,你可以在查询中不使用“USE”命令连接到其它数据库。如果没有指定默认数据库,则需要在查询中使用“USE”命令连接到要访问的数据库。
5. 总结
在本文中,我们介绍了如何从外部访问墙外的MSSQL数据库实例。我们需要在数据库服务器上开放TCP/IP协议,并指定要使用的服务器端口。在客户端计算机上,需要安装官方ODBC驱动,然后创建ODBC数据源。最后,在程序中指定ODBC数据源名称,即可连接及操作数据库。