使用 Azure SQL 進行僅限 Microsoft Entra 驗證

適用於:Azure SQL 資料庫 Azure SQL 受控執行個體 Azure Synapse Analytics(僅限專用 SQL 集區)

僅限 Microsoft Entra 驗證是 Azure SQL 中的一項功能,可讓服務僅支援 Microsoft Entra 驗證,且支援 Azure SQL 資料庫Azure SQL 受控執行個體

注意

Microsoft Entra 標識符 先前稱為 Azure Active Directory (Azure AD)。

獨立伺服器中的專用 SQL 集區(先前稱為 SQL DW)也提供僅限 Microsoft Entra 驗證。 Azure Synapse 工作區可以啟用僅限 Microsoft Entra 驗證。 如需詳細資訊,請參閱 使用 Azure Synapse 工作區進行僅限 Microsoft Entra 驗證。

在 Azure SQL 環境中啟用僅限 Microsoft Entra 驗證時,會停用 SQL 驗證,包括來自 SQL Server 系統管理員、登入和用戶的連線。 只有使用 Microsoft Entra 驗證 的使用者有權連線到伺服器或資料庫。

您可以使用 Azure 入口網站、Azure CLI、PowerShell 或 REST API 來啟用或停用僅限 Microsoft Entra 驗證。 使用 Azure Resource Manager (ARM) 範本建立伺服器期間,也可以設定僅限 Microsoft Entra 驗證。

如需 Azure SQL 驗證的詳細資訊,請參閱驗證與授權

功能說明

啟用僅限 Microsoft Entra 驗證時,會在伺服器或受控實例層級停用 SQL 驗證並防止根據任何 SQL 驗證認證進行任何驗證。 SQL 驗證使用者將無法連線到 Azure SQL Database 或受控執行個體 (包括其所有資料庫) 的邏輯伺服器。 雖然 SQL 驗證已停用,但 Microsoft Entra 帳戶仍可使用適當的許可權建立新的 SQL 驗證登入和使用者。 新建立的 SQL 驗證帳戶不允許連線至伺服器。 啟用僅限 Microsoft Entra 驗證並不會移除現有的 SQL 驗證登入和用戶帳戶。 此功能只會防止這些帳戶連線至伺服器,以及此伺服器建立的任何資料庫。

您也可以強制使用 Azure 原則 啟用僅限 Microsoft Entra 驗證來建立伺服器。 如需詳細資訊,請參閱 Azure 原則 僅限 Microsoft Entra 驗證

權限

Microsoft Entra-only 驗證可由屬於高特殊許可權 Microsoft Entra 內建角色成員的 Microsoft Entra 使用者啟用或停用,例如 Azure 訂用帳戶擁有者參與者全域 管理員 istrators。 此外,SQL 安全性管理員角色也可以啟用或停用僅限 Microsoft Entra 的驗證功能。

SQL Server 參與者SQL 受管理執行個體 參與者角色沒有啟用或停用僅限 Microsoft Entra 驗證功能的許可權。 這與 「職責 分離」方法一致,用戶可以在其中建立 Azure SQL Server 或建立 Microsoft Entra 系統管理員,無法啟用或停用安全性功能。

必要動作

下列動作會新增至 SQL 安全性管理員 角色,以允許管理僅限 Microsoft Entra 驗證功能。

  • Microsoft.Sql/servers/azureADOnlyAuthentications/*
  • Microsoft.Sql/servers/administrators/read - 僅適用於存取 Azure 入口網站 Microsoft Entra ID 功能表的使用者
  • Microsoft.Sql/managedInstances/azureADOnlyAuthentications/*
  • Microsoft.Sql/managedInstances/read

上述動作也可以新增至自定義角色,以管理僅限 Microsoft Entra 驗證。 如需詳細資訊,請參閱在 Microsoft Entra ID 中建立和指派自訂角色

使用 API 管理僅限 Microsoft Entra 驗證

重要

必須先設定 Microsoft Entra 系統管理員,才能啟用僅限 Microsoft Entra 驗證。

您的 Azure CLI 版本必須為 2.14.2 或更新版本。

name 對應至伺服器或執行個體名稱的前置詞 (例如 myserver),resource-group 對應至伺服器所屬的資源 (例如 myresource)。

Azure SQL Database

如需詳細資訊,請參閱 az sql server ad-only-auth

在 SQL Database 中啟用或停用

啟用

az sql server ad-only-auth enable --resource-group myresource --name myserver

Disable

az sql server ad-only-auth disable --resource-group myresource --name myserver

檢查 SQL Database 中的狀態

az sql server ad-only-auth get --resource-group myresource --name myserver

Azure SQL 受控執行個體

如需詳細資訊,請參閱 az sql mi ad-only-auth

啟用

az sql mi ad-only-auth enable --resource-group myresource --name myserver

Disable

az sql mi ad-only-auth disable --resource-group myresource --name myserver

檢查 SQL 受控執行個體中的狀態

az sql mi ad-only-auth get --resource-group myresource --name myserver

使用 T-SQL 檢查僅限 Microsoft Entra 驗證

SERVERPROPERTYIsExternalAuthenticationOnly 已新增,以檢查您的伺服器或受控實例是否已啟用僅限 Microsoft Entra 驗證。 1 表示已啟用此功能,0 表示此功能已停用。

SELECT SERVERPROPERTY('IsExternalAuthenticationOnly') 

備註

  • SQL Server 參與者可以設定或移除 Microsoft Entra 系統管理員,但無法只設定 Microsoft Entra 驗證設定。 SQL 安全性管理員無法設定或移除 Microsoft Entra 系統管理員,但只能設定 Microsoft Entra 驗證設定。 只有具有較高 Azure RBAC 角色或包含兩個許可權的自定義角色的帳戶可以設定或移除 Microsoft Entra 系統管理員,並僅設定 Microsoft Entra 驗證設定。 其中一個角色是參與者角色。
  • 只有在 Azure 入口網站 中啟用或停用 Microsoft Entra 驗證之後,就可以在 SQL Server 功能表中看到活動記錄專案。 Activity log entry in the Azure portal
  • 如果指定 Microsoft Entra 系統管理員,則只有具有適當許可權的使用者才能啟用或停用 Microsoft Entra 驗證設定。 如果未設定 Microsoft Entra 系統管理員, Microsoft Entra 驗證僅 設定會保持非使用中狀態,且無法啟用或停用。 如果未設定 Microsoft Entra 系統管理員,使用 API 啟用僅限 Microsoft Entra 驗證也會失敗。
  • 針對具有適當許可權的使用者,支援啟用僅限 Microsoft Entra 驗證的 Microsoft Entra 系統管理員。
  • 針對具有適當許可權的使用者,允許在 Azure 入口網站 中變更 Microsoft Entra 系統管理員並啟用或停用僅限 Microsoft Entra 驗證。 在 Azure 入口網站中,儲存一次即可完成兩項作業。 必須設定 Microsoft Entra 系統管理員,才能啟用僅限 Microsoft Entra 驗證。
  • 不支持啟用僅限 Microsoft Entra 驗證功能的 Microsoft Entra 系統管理員。 如果已啟用僅限 Microsoft Entra 驗證,則使用 API 移除 Microsoft Entra 系統管理員將會失敗。
    • 如果僅啟用 Microsoft Entra 驗證設定,則 [移除系統管理員] 按鈕會在 Azure 入口網站 中處於非使用中狀態。
  • 允許移除 Microsoft Entra 系統管理員並停用 僅限 Microsoft Entra 驗證 設定,但需要正確的用戶許可權才能完成作業。 在 Azure 入口網站中,儲存一次即可完成兩項作業。
  • 具有適當許可權的 Microsoft Entra 使用者可以模擬現有的 SQL 使用者。
    • 即使啟用僅限 Microsoft Entra 驗證功能,模擬仍會在 SQL 驗證使用者之間繼續運作。

SQL 資料庫 中僅限 Microsoft Entra 驗證的限制

針對 SQL 資料庫 啟用僅限 Microsoft Entra 驗證時,不支援下列功能:

  • Microsoft Entra 伺服器主體支援 Azure SQL 資料庫 伺服器角色,但如果 Microsoft Entra 登入是群組,則不支援。
  • 彈性工作
  • SQL 資料同步
  • 異動數據擷取 (CDC) - 如果您以 Microsoft Entra 使用者身分在 Azure SQL 資料庫 中建立資料庫,並在其中啟用異動數據擷取,SQL 使用者將無法停用或變更 CDC 成品。 不過,另一位 Microsoft Entra 使用者將能夠在同一個資料庫上啟用或停用 CDC。 同樣地,如果您以 SQL 使用者身分建立 Azure SQL 資料庫,將 CDC 啟用或停用為 Microsoft Entra 使用者將無法運作
  • 事務複製 - 因為復寫參與者之間需要 SQL 驗證才能連線,因此啟用僅限 Microsoft Entra 驗證時,對於使用事務複製來推送 Azure SQL 受控執行個體 中所做的變更的案例,不支援事務複製 SQL 資料庫、內部部署 SQL Server 或 Azure VM SQL Server 實例至 Azure 中的資料庫 SQL 資料庫
  • SQL 深入解析 (預覽)
  • Microsoft Entra 群組成員帳戶的 EXEC AS 語句

受控執行個體 中僅限 Microsoft Entra 驗證的限制

當 microsoft Entra-only authentication 啟用 受控執行個體 時,不支援下列功能:

  • 異動複寫
  • 受控執行個體 中的 SQL Agent 作業支援僅限 Microsoft Entra 驗證。 不過,屬於可存取受控實例之 Microsoft Entra 群組成員的 Microsoft Entra 使用者無法擁有 SQL Agent 作業
  • SQL 深入解析 (預覽)
  • Microsoft Entra 群組成員帳戶的 EXEC AS 語句

如需更多限制,請參閱 SQL Server 與 Azure SQL 受控執行個體 之間的 T-SQL 差異。

下一步