Azure Pipeline使用服务主体连接到SQL DB

时间:2020-06-22 20:23:22

标签: azure-devops azure-sql-database service-principal

我的天蓝色管道创建了天蓝色的sql数据库后,我想执行一些sql。

有问题的sql必须由AAD身份验证的用户执行。

管道的服务连接是数据库的AAD身份验证用户。

如果我愿意让脚本使用服务主体的秘密,那么我可以构造一个OAuth调用来检索承载令牌,并使用该令牌连接到数据库。

但是,由于Powershell脚本是在服务主体的上下文中运行的,所以我有一种直觉,那就是有一种更好的方法可以使用服务主体连接数据库,而无需依赖秘密。

有什么想法我该怎么做?

2 个答案:

答案 0 :(得分:1)

解决方案是:

我添加了一个Azure CLI任务,该任务检索了承载令牌。然后,我将其传递给使用令牌的Azure Powershell任务。

$token= & az account get-access-token --resource=https://database.windows.net --query accessToken
Write-Host("##vso[task.setvariable variable=sqlToken]$token")

答案 1 :(得分:0)

您可以尝试在Azure管道的Azure Powershell任务中的以下脚本中获取资源 int main() { fn1(); fn2(); } inline void fn1() { for (int i = 0; i < 5; ++i) printf("%d", i); } // here you can place pragma inline void fn2() { for (int j = 0; j < 5; ++j) printf("%d", 5 - i); } 的访问令牌

https://database.windows.net/