数据库A和数据库B都位于同一Azure服务器上:myhost.database.windows.net。我正在实现链接表以从DatabaseB内的DatabaseA访问表。
如下:
CREATE EXTERNAL TABLE ext.Customers
(
[CustomerID] int NOT NULL,
[CustomerName] varchar(50) NOT NULL,
[Company] varchar(50) NOT NULL
)
WITH
(
DATA_SOURCE = MyElasticDBQueryDataSrc,
SCHEMA_NAME = N'dbo',
OBJECT_NAME = N'Customers'
)
但是,当我第一次尝试访问链接表时,遇到了40.x.x.x地址的防火墙访问冲突。奇怪,但是可以,我会配合。我添加了规则。第二天晚上,我收到另一个针对40.x.x.x地址的防火墙访问冲突。嗯,这变得不可行了。我需要这些链接表可以24x7全天候可用,并且我无法继续手动添加这些防火墙规则。有几个问题-
为什么首先需要防火墙规则?跨数据库访问不应该使用内部10.x.x.x VNet吗?
我需要做一些特殊的事情来配置链接以使用内部VNet吗?
如果无法使用内部VNet,是否有一个已定义的40.xxx地址列表,该列表可以全面覆盖40.x IP地址的整个范围,我需要设置该IP地址以保持此链接的正常运行? / p>
答案 0 :(得分:1)
似乎您尚未在数据库服务器上启用对Azure服务的访问。
您可以从“防火墙和虚拟网络”刀片启用此功能。
无法使用内部VNet IP地址配置访问权限。
如果您不愿意允许访问所有Azure服务,则可以将防火墙配置为针对配置数据库的区域选择性地允许AzureSQL的IP地址范围。
可以下载here
列出按地区列出的Azure IP范围和服务标签。如果您遇到任何其他问题,请在此处发布。