可以不开防火墙设置链接"linked server"吗?
Can I set up a linked "linked server" without opening the firewall?
我的问题
我正在尝试与远程 SQL 服务器建立连接。虽然我有服务器名、端口、用户和密码,但我无法访问。这可能意味着他们在防火墙设置中有一些 IP 限制。
现在他们说如果我将他们的服务器添加为 "linked server",问题就会得到解决。但是,此功能不适用于 Azure SQL,因此在我对我的设置进行重大更改之前,我只想确定这是否能解决任何问题....所以...
添加 "linked server" 是否可以绕过更改防火墙?
- 我的直觉说不...
另外,连接远程数据库时,"server name"/"domain name"是否足够,还是我还需要ip?
添加 linked 服务器
# Setting up the link
Copy
USE [master]
GO
EXEC master.dbo.sp_addlinkedserver
@server = N'SERVER\NAME',
@srvproduct=N'SQL Server' ;
GO
#Configuring the linked server to use the domain credentials
Copy
EXEC master.dbo.sp_addlinkedsrvlogin
@rmtsrvname = N'SRVR002\ACCTG',
@locallogin = NULL ,
@useself = N'True' ;
GO
正在检索 SQL 服务器 IP
SELECT
CONNECTIONPROPERTY('net_transport') AS net_transport,
CONNECTIONPROPERTY('protocol_type') AS protocol_type,
CONNECTIONPROPERTY('auth_scheme') AS auth_scheme,
CONNECTIONPROPERTY('local_net_address') AS local_net_address,
CONNECTIONPROPERTY('local_tcp_port') AS local_tcp_port,
CONNECTIONPROPERTY('client_net_address') AS client_net_address
为了测试,我删除了我的 Azure SQL 数据库防火墙的所有规则。
然后我连接到我的本地 SQL 服务器并创建一个到 Azure SQL 数据库的链接服务器,遵循这些教程:How to create a linked server to Azure SQL Database via SQL Server Management Studio and Create Linked Servers.
我收到错误消息:
Cannot open server '****' requested by the login. Client with IP address '..*.' is not allowed to access the server. To enable access, use the Windows Azure Management Portal or run sp_set_firewall_rule on the master database to create a firewall rule for this IP address or address range. It may take up to five minutes for this change to take effect. (Microsoft SQL Server, Error: 40615)
然后我将客户端IP添加到Azure SQL数据库防火墙,链接服务器创建成功。
关于你的两个问题:
- Can I set up a linked “linked server” without opening the firewall?
不,你不能。您必须将客户端 IP 添加到您的防火墙。
- Is the "server name"/"domain name" enough when connecting to a remote database, or do I also need the ip?
是的,是的。您不需要 IP。
希望对您有所帮助。
我的问题
我正在尝试与远程 SQL 服务器建立连接。虽然我有服务器名、端口、用户和密码,但我无法访问。这可能意味着他们在防火墙设置中有一些 IP 限制。
现在他们说如果我将他们的服务器添加为 "linked server",问题就会得到解决。但是,此功能不适用于 Azure SQL,因此在我对我的设置进行重大更改之前,我只想确定这是否能解决任何问题....所以...
添加 "linked server" 是否可以绕过更改防火墙? - 我的直觉说不...
另外,连接远程数据库时,"server name"/"domain name"是否足够,还是我还需要ip?
添加 linked 服务器
# Setting up the link
Copy
USE [master]
GO
EXEC master.dbo.sp_addlinkedserver
@server = N'SERVER\NAME',
@srvproduct=N'SQL Server' ;
GO
#Configuring the linked server to use the domain credentials
Copy
EXEC master.dbo.sp_addlinkedsrvlogin
@rmtsrvname = N'SRVR002\ACCTG',
@locallogin = NULL ,
@useself = N'True' ;
GO
正在检索 SQL 服务器 IP
SELECT
CONNECTIONPROPERTY('net_transport') AS net_transport,
CONNECTIONPROPERTY('protocol_type') AS protocol_type,
CONNECTIONPROPERTY('auth_scheme') AS auth_scheme,
CONNECTIONPROPERTY('local_net_address') AS local_net_address,
CONNECTIONPROPERTY('local_tcp_port') AS local_tcp_port,
CONNECTIONPROPERTY('client_net_address') AS client_net_address
为了测试,我删除了我的 Azure SQL 数据库防火墙的所有规则。
然后我连接到我的本地 SQL 服务器并创建一个到 Azure SQL 数据库的链接服务器,遵循这些教程:How to create a linked server to Azure SQL Database via SQL Server Management Studio and Create Linked Servers.
我收到错误消息:
Cannot open server '****' requested by the login. Client with IP address '..*.' is not allowed to access the server. To enable access, use the Windows Azure Management Portal or run sp_set_firewall_rule on the master database to create a firewall rule for this IP address or address range. It may take up to five minutes for this change to take effect. (Microsoft SQL Server, Error: 40615)
然后我将客户端IP添加到Azure SQL数据库防火墙,链接服务器创建成功。
关于你的两个问题:
- Can I set up a linked “linked server” without opening the firewall?
不,你不能。您必须将客户端 IP 添加到您的防火墙。
- Is the "server name"/"domain name" enough when connecting to a remote database, or do I also need the ip?
是的,是的。您不需要 IP。
希望对您有所帮助。