Azure devops Azure DevOps“;2017年主办”;生成代理不允许SQL连接
我有一个非常简单的DacPac,它由Azure DevOps构建并通过发布管道发布。构建工作正常,但管道因连接错误而失败。我已经检查并重新检查了设置。防火墙规则在目标服务器上设置正确,凭据有效,但版本将无法通过。我尝试了许多组合,包括指定端口,但无法使其连接。如果尝试从PowerShell启动连接并调用SqlCmd,则会出现类似的连接错误 有人能解释一下吗 是否存在任何可能妨碍托管代理的端口限制(例如1433被阻止) 我需要更新代理吗 SQL连接是否需要一些额外的配置 谢谢 我得到的错误是: 无法连接到目标服务器“.database.windows.net”。 请验证连接信息,例如服务器名称, 目标服务器的登录凭据和防火墙规则。登录 无法获取用户的数据Azure devops Azure DevOps“;2017年主办”;生成代理不允许SQL连接,azure-devops,azure-sql-database,azure-pipelines-release-pipeline,invoke-sqlcmd,azure-devops-hosted-agent,Azure Devops,Azure Sql Database,Azure Pipelines Release Pipeline,Invoke Sqlcmd,Azure Devops Hosted Agent,我有一个非常简单的DacPac,它由Azure DevOps构建并通过发布管道发布。构建工作正常,但管道因连接错误而失败。我已经检查并重新检查了设置。防火墙规则在目标服务器上设置正确,凭据有效,但版本将无法通过。我尝试了许多组合,包括指定端口,但无法使其连接。如果尝试从PowerShell启动连接并调用SqlCmd,则会出现类似的连接错误 有人能解释一下吗 是否存在任何可能妨碍托管代理的端口限制(例如1433被阻止) 我需要更新代理吗 SQL连接是否需要一些额外的配置 谢谢 我得到的错误是: 无
您需要指定端口:
xxx.database.windows.net,1433
标准SQL发布活动似乎不支持AD Auth。UI仅允许您为SQL用户提供凭据。有一个选项可以通过/TargetConnectionString
参数为SqlPackage.exe
提供连接字符串,但是这不起作用,因为UI需要SQL凭据,并且这些凭据不能与/TargetConnectionString
参数一起使用
我通过从标准PowerShell发布脚本运行SqlPackage.exe
解决了这个问题
&“C:\Program Files(x86)\Microsoft Visual
Studio\2017\Enterprise\Common7\IDE\Extensions\Microsoft\SQLDB\DAC\140\SqlPackage.exe”
/SourceFile:“$(System.DefaultWorkingDirectory)/\u MyProj.Infrastructure
build/DBScripts/bin/Debug/MyProj.Database.dacpac”/操作:发布
/tcs:“Server=myprodsql.database.windows.net;初始值
Catalog=optimizedb;Persist Security Info=False;用户
ID='$(adminUserEmail)';密码='$(adminUserPassword)';MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;身份验证=Active Directory密码”
我以前也遇到过同样的问题,解决这个问题的“最简单”方法是将DevOps拥有的每个IP地址都列在白名单上——遗憾的是,根据您的地理位置,这个名单相当大,而且每周都会更改 我确实编写了一个PS1脚本来解析列表,并确保必要的规则已经就位 然而,这样做有几个明显的问题(还有一个问题不是很明显) 某些区域的IP地址列表非常庞大,以至于Azure数据库无法拥有所有IP地址,它超出了限制 打开IP地址,你(理论上至少)将攻击向量暴露到数据库中。如果有人知道您服务器的地址,他们可以尝试访问它 因此,我尝试了0.0.0.0/allow-access-to-Azure设置,但这似乎并不适用于DevOps
我的最终解决方案是在Azure中启动一个VM并在其上安装构建代理。虽然不理想,但它确实起了作用。允许我的Azure SQL数据库的所有IP范围为我做到了这一点。 现在我只需要找出并缩小构建代理在Azure DevOps构建管道中运行的IP
Azure DevOps构建任务中防火墙规则的自动设置不起作用。我为同样的问题苦苦挣扎。我确实通过以下两个步骤解决了这个问题
您是否尝试过允许也尝试过将
startip
和endip
更改为0.0.0
我在问题中提到,我已经尝试过指定端口。与此情况相同: