尝试从 Azure Pipelines 访问 MySQL 数据库时出现“用户拒绝访问”

问题描述

我在 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 中使用该访问令牌运行相同的脚本时,我遇到了同样的错误

不胜感激!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)