我的天蓝色管道创建了天蓝色的sql数据库后,我想执行一些sql。
有问题的sql必须由AAD身份验证的用户执行。
管道的服务连接是数据库的AAD身份验证用户。
如果我愿意让脚本使用服务主体的秘密,那么我可以构造一个OAuth调用来检索承载令牌,并使用该令牌连接到数据库。
但是,由于Powershell脚本是在服务主体的上下文中运行的,所以我有一种直觉,那就是有一种更好的方法可以使用服务主体连接数据库,而无需依赖秘密。
有什么想法我该怎么做?
答案 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/