Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql “当”时,外部表格不工作;拒绝公共网络访问”;设置为是_Sql_Azure_Azure Sql Database_Vnet_Azure Private Link - Fatal编程技术网

Sql “当”时,外部表格不工作;拒绝公共网络访问”;设置为是

Sql “当”时,外部表格不工作;拒绝公共网络访问”;设置为是,sql,azure,azure-sql-database,vnet,azure-private-link,Sql,Azure,Azure Sql Database,Vnet,Azure Private Link,我在Azure SQL数据库服务器的防火墙设置中将“拒绝公共网络访问”旋钮设置为“是”,从而启用了专用链接。除外部数据源(外部表)外,一切都正常工作。外部选项卡只是指向属于同一服务器的另一个Azure SQL数据库中的表的链接。在我启用私有链接之前,一切正常。如果我尝试查询外部表,则会收到以下错误消息: “从[mydbserver].database.windows.net.[mydbname]检索数据时出错。收到的基本错误消息是:'原因:在建立与SQL Server的连接时发生了特定于实例的错

我在Azure SQL数据库服务器的防火墙设置中将“拒绝公共网络访问”旋钮设置为“是”,从而启用了专用链接。除外部数据源(外部表)外,一切都正常工作。外部选项卡只是指向属于同一服务器的另一个Azure SQL数据库中的表的链接。在我启用私有链接之前,一切正常。如果我尝试查询外部表,则会收到以下错误消息:

“从[mydbserver].database.windows.net.[mydbname]检索数据时出错。收到的基本错误消息是:'原因:在建立与SQL Server的连接时发生了特定于实例的错误。由于拒绝公共网络访问设置为是()。若要连接到此服务器,请使用虚拟网络()中的专用终结点。“

我在文档中找不到任何关于外部数据源和外部表与专用链接设置相结合的限制


使用标准方式创建的外部表:“创建外部数据源”和“创建外部表”。我还尝试在启用私有链接后重新创建数据源和表,但错误仍然存在…

您需要使用名称
yourdbname.privatelink.database.windows.net

之后,您可能会收到另一个错误,即该名称不正确。在这种情况下,您遇到了DNS问题,需要在VM的主机文件中添加一个具有端点IP的条目。如果您的虚拟机不在该VNET的范围内,那就另当别论了

然后,您需要在主机文件中添加端点的公共IP。我仍在尝试用一个严肃的dns解决这个问题,但还没有弄明白

有关更多信息,请参见此


想重申Microsoft Q&A上发布的同一问题的答案:

由于目前不支持专用链接,该限制仅适用于。根据PG:

Polybase此时不支持使用专用链接。请指示客户使用托管标识来保护与Azure存储的连接


尽管这对您来说可能不是一个可行的解决方案,但如果您需要访问的数据被提取到存储帐户,然后通过PG引用的方法导入,这可能是一个可行的解决方案。同样的过程与触发器端点相反,并且可以在VNET+托管标识的安全性范围内完成。

您是否遵循了此处的所有步骤:是的,这与我设置跨数据库链接所遵循的过程相同。我们还发现,外部表不适用于专用链接。您应该改掉使用多个数据库的习惯,而是使用一个数据库和多个架构。好的,您是否得到Microsoft的确认,Private Link不支持外部表?我在文件里没有看到这方面的任何东西。我没有选择将所有内容放在具有不同模式的同一数据库中。每个客户都有自己的数据库,每个数据库都链接到一个主数据库。您好@Coder62349,没有关于这个的文档,我认为最好的方法是向Azure支持团队寻求帮助。但这可能需要一些金钱和时间。Azure中的VM和数据库之间的连接可以通过专用链接和适当的DNS正常工作。问题在于,一个数据库中指向另一个数据库(位于同一服务器上)中的表的外部表不起作用。我还尝试在创建外部数据源时使用yourdbname.privatelink.database.windows.net DNS,但仍然不起作用:-(很抱歉,如果我发现了什么,我会让你知道的。你是如何配置dns的?你是否使用Azure资源进行dns?我的端点有一个私有ip,我需要将它指向privatelink.database.windows.net。我在哪里可以为privatelink.database.windows.net创建dns记录??!有关其他信息,请参阅此论坛: