Azure 如何从构建管道以AAD用户身份运行sql脚本?

Azure 如何从构建管道以AAD用户身份运行sql脚本?,azure,azure-active-directory,azure-sql-database,azure-pipelines,Azure,Azure Active Directory,Azure Sql Database,Azure Pipelines,我正在为我的web应用设置托管标识。作为部署的一部分,我正在部署数据库,运行迁移,还需要使用此脚本添加托管标识用户 CREATE USER [<identity-name>] FROM EXTERNAL PROVIDER; ALTER ROLE db_datareader ADD MEMBER [<identity-name>]; ALTER ROLE db_datawriter ADD MEMBER [<identity-name>]; ALTER ROLE

我正在为我的web应用设置托管标识。作为部署的一部分,我正在部署数据库,运行迁移,还需要使用此脚本添加托管标识用户

CREATE USER [<identity-name>] FROM EXTERNAL PROVIDER;
ALTER ROLE db_datareader ADD MEMBER [<identity-name>];
ALTER ROLE db_datawriter ADD MEMBER [<identity-name>];
ALTER ROLE db_ddladmin ADD MEMBER [<identity-name>];
GO
从外部提供者创建用户[];
更改角色db_datareader添加成员[];
ALTER ROLE db_datawriter添加成员[];
更改角色db_ddladmin添加成员[];
去
如上所述。我使用Azure SQL数据库部署任务完成此任务。我的问题是,这必须作为Azure广告用户执行

无法创建主体“xyz”。仅建立连接 使用Active Directory帐户可以创建其他Active Directory 用户

我不想使用我的帐户,也不能创建除来宾用户以外的新用户帐户


除了先在Azure AD中创建用户,然后提供其登录名和密码(存储为安全变量或存储在我的Azure KeyVault中)之外,还有其他选项吗

使用已授权管理数据库的服务主体从Azure PowerShell或Azure CLI任务运行它。我不明白。你的意思是这两个是Azure构建管道中的任务?但谁将被授权管理数据库呢?还是我或其他帐户?创建到Azure的服务连接幕后服务主体是为了管理Azure资源而创建的。它允许Azure DevOps对Azure资源进行更改。我使用ARM模板创建资源,部署代码,运行迁移,所以我认为我已经创建了此ServicePrincipal,对吗?但到目前为止,我觉得这项任务需要一些特别的东西。