Azure devops 如何从Azure DevOps管道查询Azure SQL DB?

Azure devops 如何从Azure DevOps管道查询Azure SQL DB?,azure-devops,azure-sql-database,Azure Devops,Azure Sql Database,我想从Azure DevOps发布管道查询Azure SQL DB。如何做到这一点?一种方法是在Azure Devops中的powershell任务中使用powershell 例如: $return=Invoke Sqlcmd -ConnectionString$DBCONNECTIONSTRING` -输入文件$PSScriptRoot/Create-DbApiUser.sql` -变量@(“密码=$password”,“用户名=$username”) 本例使用完整连接字符串和输入文件作为S

我想从Azure DevOps发布管道查询Azure SQL DB。如何做到这一点?

一种方法是在Azure Devops中的powershell任务中使用powershell

例如:

$return=Invoke Sqlcmd
-ConnectionString$DBCONNECTIONSTRING`
-输入文件$PSScriptRoot/Create-DbApiUser.sql`
-变量@(“密码=$password”,“用户名=$username”)
本例使用完整连接字符串和输入文件作为SQL查询。但是,您不需要这样做,您可以在PowerShell本身中编写SQL查询。 您还可以将变量传递给SQL查询,如示例所示。 另外,$return还用于将表数据获取到PowerShell变量中,并进一步处理该变量

这也取决于你想要实现什么。调用sqlcmd有其局限性

您还有一项专门的AzureDevops任务:

-任务:SqlAzureDacpacDeployment@1
投入:
AuthenticationType:“服务器”
服务器名:“$Sqlservername”
DatabaseName:“$DatabaseName”
SqlUsername:“$Login”
SqlPassword:“$Password”
部署类型:“InlineSqlTask”
SqlInline:“从foo中选择*
IPDetection方法:“自动检测”
注意,要访问数据库,必须将sql server上的防火墙设置为:

  • 允许Azure服务和资源访问此服务器
  • 如果1不是选项,请添加powershell任务,如中所示,以添加和删除防火墙规则,以便管道可以连接到数据库

  • 非常感谢。我会在这里检查连接和更新。我尝试了这个。我得到登录错误。我的凭据是正确的,但仍然出现登录错误。来自SSMS的凭据相同。已编辑主响应。我假设问题是SQL server上的防火墙设置。是否有任何方法可以使用Azure PowerShell连接到Azure SQL。防火墙选项对我不起作用。我知道这是您在文档中提到的正确选项。如果有任何Powershell选项可连接到sql,我将尝试该选项,或将其标记为答案,因为这是正确的方法。第一个代码示例显示了如何查询Azure sql,您仍然需要一个连接字符串来执行查询。您还可以尝试使用本文中所述的服务主体: