首页 > 解决方案 > 是否可以允许 Azure 弹性作业访问 Azure SQL 数据库,而无需允许所有 Azure 资源访问服务器?

问题描述

我们正在尝试使用 Azure 弹性作业在一组 Azure SQL 数据库上运行数据库作业。对这些 Azure SQL 数据库的访问仅限于我们在防火墙规则中配置的某些 IP 地址。在测试弹性作业的执行时,弹性作业代理无法访问我们的数据库。我们不想为所有 Azure 服务启用访问权限。我发现一个帖子可以通过手动添加我们使用位置的Azure资源的IP地址来限制访问。( https://github.com/MicrosoftDocs/azure-docs/issues/35138 ) 但这意味着该位置的所有 Azure 资源仍然可以尝试访问我们的服务器。

有没有办法只为我们的弹性作业 SQL 代理资源提供对我们的 SQL 数据库的访问?

标签: azureazure-sql-database

解决方案


是的,不需要允许所有 Azure 资源到服务器,但之后我们需要列出 ip 白名单。(https://github.com/MicrosoftDocs/azure-docs/issues/35138)帖子还说:Please go ahead to white list the IP Ranges for the specific data center you are deployed to instead of allowing all IPs from all Azure services.

我还创建了一个测试来证明这一点。
我关闭了 Azure SQL 数据库的这个设置。
在此处输入图像描述

然后我执行EXEC jobs.sp_start_job 'CreateTableTest'开始工作,我只得到一个错误如下: 在此处输入图像描述

所以我需要将客户端 ip 添加到我的 Azure SQL 数据库的防火墙规则中。之后,它运行良好。 在此处输入图像描述

当我们允许 Azure 服务和资源访问此服务器时,它会自动隐式添加所有 azure 服务和资源的 ip 范围。

更新:
我已经删除了其他 IP 列表,弹性作业仍然可以成功运行。 在此处输入图像描述 太棒了! 在此处输入图像描述


推荐阅读