Share via


使用受控識別將 Azure SQL 資料庫 連線至部署至 Azure Spring Apps 的應用程式

注意

Azure Spring Apps 是 Azure Spring Cloud 服務的新名稱。 雖然服務有新的名稱,但在我們努力更新資產,例如螢幕快照、影片和圖表時,您會在某些地方看到舊名稱一段時間。

本文適用於: ✔️ Java ✔️ C#

本文適用於: ✔️基本/標準✔️企業

本文說明如何為部署至 Azure Spring Apps 的應用程式建立受控識別,並使用它來存取 Azure SQL 資料庫。

Azure SQL 資料庫 是專為雲端建置的智慧型、可調整關係資料庫服務。 其一律為最新狀態,且具有 AI 支援的自動化功能,可優化效能和持久性。 無伺服器計算和超大規模資料庫儲存體選項會根據需求自動調整資源,因此您可以專注於建置新的應用程式,而不需擔心儲存體大小或資源管理。

必要條件

使用受控識別 連線 至 Azure SQL 資料庫

您可以依照手動步驟或使用服務 連線 or,將應用程式連線至具有受控識別的 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 應用程式。

下一步