1

我在 Azure 上运行 MySql 数据库。我的最终目标是从 Azure DevOps 中的管道向数据库添加 AADUser。AADUser 只能由 AADAdmin 添加。所以我想根据 Azure DevOps 用来连接到 Azure(服务连接)的服务主体创建一个 AADAdmin。

我已完成以下步骤:

  1. 在门户中,在 Azure DevOps 中查找链接到我的服务连接(“Unicorn Dev”)的服务主体的 objectId。
  2. 使用该 objectId 创建 AADAdmin: az mysql server ad-admin create --server-name mydb -g myrg --display-name devops_service_connection_dev@mydb --object-id d5ab6ee1-55d4-4c78-ae71-d49526310733。(运行命令后我可以在数据库中看到这个用户)。请参阅https://docs.microsoft.com/en-us/cli/azure/mysql/server/ad-admin?view=azure-cli-latest#az_mysql_server_ad_admin_create
  3. 尝试从 Azure DevOps 中的管道连接到数据库:
- task: AzureCLI@2
  inputs:
    azureSubscription: 'Unicorn Dev'
    scriptType: 'bash'
    scriptLocation: 'inlineScript'
    inlineScript: 'mysql -h mydb.mysql.database.azure.com --user devops_service_connection_dev@mydb --password=`az account get-access-token --resource-type oss-rdbms --output tsv --query accessToken` --ssl-ca=BaltimoreCyberTrustRoot.crt.pem --enable-cleartext-plugin;'

此命令失败并出现以下错误: ERROR 1045 (28000): Access denied for user 'devops_service_connection_dev@mydb'@'51.144.241.08' (using password: YES)

该任务确实生成了一个访问令牌,并且在 Cloud Shell 中使用该访问令牌运行相同的脚本时,我得到了同样的错误。

一些帮助将不胜感激!

4

0 回答 0