本頁說明如何設定 Databricks Lakehouse 同盟,以使用 Microsoft Entra ID 驗證在 Microsoft SQL Server 上執行同盟查詢。 支援使用者對機器 (U2M) 和機器對機器 (M2M) OAuth 流程。
支援的 OAuth 流程
- U2M:使用 Microsoft 帳戶進行驗證。 系統會提示使用者使用重新導向 URI 登入,並會為使用者核發存取權杖。
- M2M:使用服務主體進行驗證。 存取權杖是針對應用程式而不是特定使用者發出的。
在 Databricks 工作區中, OAuth 是指 U2M 驗證, 而 OAuth 機器對機器 是指 M2M 驗證。
開始之前
您必須先具備下列項目,才能使用 Entra ID 在 SQL Server 上執行同盟查詢:
- 存取 Azure 訂用帳戶,以及在 Microsoft Entra ID 中註冊應用程式的許可權。
- SQL Server 實例的管理員存取權,以建立 Entra 主體。
在 Microsoft Entra ID 中註冊應用程式
若要建立應用程式註冊以進行驗證,請執行下列動作:
- 登入 Azure 入口網站。
- 流覽至 Microsoft Entra ID>應用程式註冊>[新註冊]。
- 輸入應用程式的名稱。
- 對於 U2M(OAuth),將重新導向URI設定為下列項目:
https://<workspace-url>/login/oauth/azure.html - 針對 M2M (服務主體),請將重新導向 URI 保留空白。
- 對於 U2M(OAuth),將重新導向URI設定為下列項目:
- 按一下 [註冊]。
- 複製 應用程式 (用戶端) ID 和 目錄 (租戶) ID。
- 流覽至 憑證和密碼:新增>用戶端密碼。
- 儲存產生的秘密值。
將權限指派給應用程式
若要允許應用程式向 SQL Server 進行驗證,請指派必要的 API 權限:
- 導覽至 API 權限>新增權限。
- 選取 Azure SQL Database>user_impersonation (委派的許可權)。
- 針對機器對機器(M2M),請確定應用程式具有服務主體的驗證所需的權限。
- 針對 Azure SQL 受控執行個體上的 M2M 驗證,請確定您已 將受控執行個體身分識別指派給「目錄讀取者」角色。
在 SQL Server 中建立服務主體 (僅限 M2M)
使用您的 Entra ID 登入認證連線到您的 SQL Server 執行個體。 您必須具有建立新使用者的權限。
為 Entra 應用程式建立新的登入名稱和使用者。
將讀取權限授與使用者。
CREATE LOGIN [<app_name>] FROM EXTERNAL PROVIDER; CREATE USER [<app_name>] FROM LOGIN [<app_name>]; ALTER ROLE db_datareader ADD MEMBER [<app_name>];
如需詳細資料和進階案例,請參閱 Microsoft 檔中的下列頁面:
建立連線
在 Databricks 工作區中,執行下列動作:
- 在側邊欄中,按一下 目錄>新增> 新增連線。
- 針對 [連線類型],選取 [SQL Server]。
- 針對 [驗證類型],選取 [OAuth (U2M)] 或 [OAuth 機器對機器 (M2M)]。
- 輸入下列連線屬性:
- 主機:SQL Server 主機名稱。
- 連接埠:SQL Server 連接埠。
- 使用者:U2M 相關的 Microsoft 帳戶使用者。 針對 M2M,服務主體名稱。
- 輸入 Entra 應用程式註冊中的 用戶端識別碼 和 用戶端密碼 。
- 輸入 授權端點:
- U2M:
https://login.microsoftonline.com/<tenant-id>/oauth2/v2.0/authorize - M2M:
https://login.microsoftonline.com/<tenant-id>/oauth2/v2.0/token
- U2M:
- 針對 OAuth 權限範圍,輸入
https://database.windows.net/.default offline_access(僅限於 U2M)。
- 針對 U2M,按一下 [使用 Azure Entra ID 登入] ,然後完成驗證流程。
- 按一下建立 連線 ,然後繼續建立目錄。
後續步驟
現在已建立與 SQL Server 的連線,請參閱 在 Microsoft SQL Server 上執行同盟查詢, 以建立外部目錄並查詢您的資料。