使用受控識別將 Azure SQL 資料庫 連線至部署至 Azure Spring Apps 的應用程式
注意
基本、標準和企業方案將從 2025 年 3 月中旬開始淘汰,並停用 3 年。 建議您轉換至 Azure Container Apps。 如需詳細資訊,請參閱 Azure Spring Apps 淘汰公告。
標準 耗用量和專用 方案將從 2024 年 9 月 30 日起淘汰,並在六個月後完成關閉。 建議您轉換至 Azure Container Apps。 如需詳細資訊,請參閱 將 Azure Spring Apps 標準取用和專用方案遷移至 Azure Container Apps。
本文適用於:✅ Java ✅ C#
本文適用於:✅ 基本/標準 ✅ 企業
本文說明如何為部署至 Azure Spring Apps 的應用程式建立受控識別,並用它來存取 Azure SQL 資料庫。
Azure SQL 資料庫 是專為雲端建置的智慧型、可調整關係資料庫服務。 其一律為最新狀態,且具有 AI 支援的自動化功能,可優化效能和持久性。 無伺服器計算和超大規模資料庫儲存體選項會根據需求自動調整資源,因此您可以專注於建置新的應用程式,而不需擔心儲存體大小或資源管理。
必要條件
- 具有有效訂用帳戶的 Azure 帳戶。 免費建立帳戶。
- Azure CLI 2.45.0 版或更新版本。
- 請遵循 Spring Data JPA 教學課程來布建 Azure SQL 資料庫,並在本機使用 Java 應用程式。
- 遵循 Azure Spring Apps 系統指派的受控識別教學課程,在已啟用受控識別的 Azure Spring Apps 中布建應用程式。
使用受控識別連線到 Azure SQL 資料庫
您可以依照手動步驟或使用 Service Connector,將應用程式連線至具有受控識別的 Azure SQL 資料庫。
將許可權授與受控識別
線上到您的 SQL Server 並執行下列 SQL 查詢:
CREATE USER [<managed-identity-name>] FROM EXTERNAL PROVIDER;
ALTER ROLE db_datareader ADD MEMBER [<managed-identity-name>];
ALTER ROLE db_datawriter ADD MEMBER [<managed-identity-name>];
ALTER ROLE db_ddladmin ADD MEMBER [<managed-identity-name>];
GO
佔位元的值 <managed-identity-name>
遵循規則 <service-instance-name>/apps/<app-name>
,例如: myspringcloud/apps/sqldemo
。 您也可以使用下列命令,使用 Azure CLI 查詢受控識別名稱:
az ad sp show --id <identity-object-ID> --query displayName
將您的 Java 應用程式設定為使用受控識別
開啟 src/main/resources/application.properties 檔案,然後在行尾spring.datasource.url
新增 Authentication=ActiveDirectoryMSI;
,如下列範例所示。 請務必針對 $AZ_DATABASE_NAME 變數使用正確的值。
spring.datasource.url=jdbc:sqlserver://$AZ_DATABASE_NAME.database.windows.net:1433;database=demo;encrypt=true;trustServerCertificate=false;hostNameInCertificate=*.database.windows.net;loginTimeout=30;Authentication=ActiveDirectoryMSI;
建置應用程式並將其部署至 Azure Spring Apps
重建應用程式,並將其部署到必要條件下第二個專案符號點中布建的 Azure Spring Apps。 您現在已使用 JPA 在 Azure Spring Apps 中儲存和擷取 Azure SQL 資料庫 資料的受控識別所驗證的 Spring Boot 應用程式。