使用 Microsoft Entra 驗證搭配 Synapse SQL 進行驗證
Microsoft Entra 驗證是一種機制,可使用 Microsoft Entra 識別碼中的身分識別連線到 Azure Synapse Analytics 。
透過 Microsoft Entra 驗證,您可以集中管理可存取 Azure Synapse 的使用者身分識別,以簡化版權管理。 包括以下優點:
- 它提供一般使用者名稱和密碼驗證的替代方案。
- 協助停止跨伺服器的使用者身分識別激增。
- 允許在單一位置進行密碼輪替。
- 客戶可以使用外部 (Microsoft Entra ID) 群組來管理許可權。
- 它可藉由啟用整合式Windows 驗證和 Microsoft Entra ID 所支援的其他形式的驗證,來消除儲存密碼。
- Microsoft Entra ID 支援連線至 Azure Synapse 的應用程式權杖型驗證。
- Microsoft Entra 驗證支援本機 Microsoft Entra 識別碼的 ADFS(網域同盟)或原生使用者/密碼驗證,而不需要網域同步處理。
- Microsoft Entra ID 支援使用 Active Directory 通用驗證的 SQL Server Management Studio 連線,其中包括多重要素驗證 (MFA)。 MFA 包含具有一系列簡單驗證選項的增強式驗證,包括電話、簡訊、具有釘選的智慧卡或行動代理程式更新。 如需詳細資訊,請參閱 使用 Synapse SQL 進行 Microsoft Entra 多重要素驗證的 SSMS 支援。
- Microsoft Entra ID 支援使用 Active Directory 互動式驗證之 SQL Server Data Tools (SSDT) 的類似連線。 如需詳細資訊,請參閱 SQL Server Data Tools (SSDT) 中的 Microsoft Entra ID 支援。
組態步驟包括下列程式來設定及使用 Microsoft Entra 驗證。
- 建立並填入 Microsoft Entra ID。
- 建立 Microsoft Entra 身分識別
- 將角色指派給 Synapse 工作區中建立的 Microsoft Entra 身分識別
- 使用 Microsoft Entra 身分識別連線至 Synapse Studio。
Azure Synapse Analytics 中的 Microsoft Entra 傳遞
Azure Synapse Analytics 可讓您使用 Microsoft Entra 身分識別來存取 Data Lake 中的資料。
定義不同資料引擎中所尊重之檔案和資料的存取權限,可讓您藉由在定義許可權的單一位置,而不是在多個位置定義許可權,來簡化 Data Lake 解決方案。
信認架構
下列高階圖表摘要說明搭配 Synapse SQL 使用 Microsoft Entra 驗證的解決方案架構。 為了支援 Microsoft Entra 原生使用者密碼,只會考慮 Cloud 部分和 Azure AD/Synapse Synapse SQL。 若要支援同盟驗證 (或 Windows 認證的使用者/密碼),需要與 ADFS 區塊進行通訊。 箭頭表示通訊路徑。
下圖表示允許用戶端藉由提交權杖連線到資料庫的同盟、信任和主控關聯性。 權杖是由 Microsoft Entra 識別碼進行驗證,而且由資料庫信任。
客戶 1 可以代表具有原生使用者的 Microsoft Entra 識別碼或具有同盟使用者的 Microsoft Entra 識別碼。 客戶 2 代表可能的解決方案,包括匯入的使用者;在此範例中,來自同盟的 Microsoft Entra 識別碼,且 ADFS 與 Microsoft Entra ID 同步處理。
請務必瞭解使用 Microsoft Entra 驗證存取資料庫時,需要裝載訂用帳戶與 Microsoft Entra 識別碼相關聯。 相同的訂用帳戶必須用來建立裝載 Azure SQL 資料庫或專用 SQL 集區的 SQL Server。
系統管理員結構
使用 Microsoft Entra 驗證時,Synapse SQL 有兩個管理員istrator 帳戶;原始 SQL 系統管理員(使用 SQL 驗證)和 Microsoft Entra 系統管理員。 只有以 Microsoft Entra 帳戶為基礎的系統管理員才能在使用者資料庫中建立第一個 Microsoft Entra ID 自主資料庫使用者。
Microsoft Entra 系統管理員登入可以是 Microsoft Entra 使用者或 Microsoft Entra 群組。 當系統管理員是群群組帳戶時,任何群組成員都可以使用它,為 Synapse SQL 實例啟用多個 Microsoft Entra 系統管理員。
以系統管理員身分使用群群組帳戶,可讓您集中新增和移除 Microsoft Entra 識別碼中的群組成員,而不需要變更 Azure Synapse Analytics 工作區中的使用者或許可權,藉以增強管理性。 隨時只能設定一個 Microsoft Entra 系統管理員(使用者或群組)。
權限
若要建立新的使用者,您必須具有資料庫中的 ALTER ANY USER
權限。 任何資料庫使用者皆可授與 ALTER ANY USER
權限。 許可權 ALTER ANY USER
也會由 SQL 系統管理員和 Microsoft Entra 系統管理員帳戶,以及具有 CONTROL ON DATABASE
該資料庫或 ALTER ON DATABASE
許可權的資料庫使用者,以及資料庫角色的成員 db_owner
所持有。
若要在 Synapse SQL 中建立自主資料庫使用者,您必須使用 Microsoft Entra 身分識別連線到資料庫或實例。 若要建立第一個自主資料庫使用者,您必須使用 Microsoft Entra 系統管理員連線到資料庫(誰是資料庫的擁有者)。
只有在針對 Synapse SQL 建立 Microsoft Entra 系統管理員時,才能進行任何 Microsoft Entra 驗證。 如果 Microsoft Entra 系統管理員已從伺服器中移除,則先前在 Synapse SQL 內建立的現有 Microsoft Entra 使用者將無法再使用其 Microsoft Entra 認證連線到資料庫。
停用本機驗證
藉由只允許 Microsoft Entra 驗證,集中管理對 Azure Synapse 資源的存取,例如 SQL 集區。 若要在工作區建立期間停用 Synapse 中的本機驗證,請選取 [僅使用 Microsoft Entra 驗證 ] 作為驗證方法。 仍會建立 SQL 管理員istrator 登入,但將會停用。 稍後,Synapse 工作區的 Azure 擁有者或參與者可以啟用本機驗證。
您也可以在透過 Azure 入口網站 建立工作區之後停用本機驗證。 在為 Azure Synapse 工作區建立 Microsoft Entra 系統管理員之前,無法停用本機驗證。
Microsoft Entra 功能和限制
您可以在 Synapse SQL 中布建下列 Microsoft Entra ID 成員:
- 原生成員:在受控網域或客戶網域的 Microsoft Entra ID 中建立的成員。 如需詳細資訊,請參閱 將您自己的功能變數名稱新增至 Microsoft Entra ID 。
- 同盟網域成員:使用同盟網域在 Microsoft Entra ID 中建立的成員。 如需詳細資訊,請參閱 在 Azure 中部署Active Directory 同盟服務。
- 從其他 Azure AD 匯入,且為原生網域或同盟網域成員者。
- 建立 Active Directory 群組作為安全性群組。
屬於具有
db_owner
伺服器角色之群組的 Microsoft Entra 使用者無法在 Synapse SQL 中使用 CREATE DATABASE SCOPED CREDENTIAL 語法。 您會看到下列錯誤:SQL Error [2760] [S0001]: The specified schema name 'user@mydomain.com' either does not exist or you do not have permission to use it.
將
db_owner
角色直接授與個別 Microsoft Entra 使用者,以減輕 CREATE DATABASE SCOPED CREDENTIAL 問題。這些系統函式會在 Microsoft Entra 主體下執行時傳回 Null 值:
SUSER_ID()
SUSER_NAME(<admin ID>)
SUSER_SNAME(<admin SID>)
SUSER_ID(<admin name>)
SUSER_SID(<admin name>)
使用 Microsoft Entra 身分識別連線
Microsoft Entra 驗證支援使用 Microsoft Entra 身分識別連線到資料庫的下列方法:
- Microsoft Entra 密碼
- Microsoft Entra 整合
- Microsoft Entra Universal with MFA
- 使用應用程式權杖驗證
Microsoft Entra 伺服器主體支援下列驗證方法(登入):
- Microsoft Entra 密碼
- Microsoft Entra 整合
- Microsoft Entra Universal with MFA
其他考量
- 若要增強管理性,建議您以系統管理員身分佈建專用的 Microsoft Entra 群組。
- 您可以隨時為 Synapse SQL 集區設定一個 Microsoft Entra 系統管理員(使用者或群組)。
- 新增 Synapse SQL 的 Microsoft Entra 伺服器主體 (logins) 可讓您建立可新增至角色的
sysadmin
多個 Microsoft Entra 伺服器主體 (logins)。
- 新增 Synapse SQL 的 Microsoft Entra 伺服器主體 (logins) 可讓您建立可新增至角色的
- 只有 Synapse SQL 的 Microsoft Entra 系統管理員一開始可以使用 Microsoft Entra 帳戶連線到 Synapse SQL。 Active Directory 系統管理員可以設定後續的 Microsoft Entra 資料庫使用者。
- 建議將連接逾時設定為 30 秒。
- SQL Server 2016 Management Studio 和 SQL Server Data Tools for Visual Studio 2015 (版本 14.0.60311.1April 2016 或更新版本)支援 Microsoft Entra 驗證。 (.NET Framework Data Provider for SqlServer 支援 Microsoft Entra 驗證;至少為 .NET Framework 4.6 版)。 因此,這些工具和資料層應用程式的最新版本 (DAC 和 。BACPAC) 可以使用 Microsoft Entra 驗證。
- 從 15.0.1 版開始, sqlcmd 公用程式和 bcp 公用程式 支援使用 MFA 的 Active Directory 互動式驗證。
- SQL Server Data Tools for Visual Studio 2015 至少需要 2016 年 4 月版本的 Data Tools (版本 14.0.60311.1)。 目前,SSDT 物件總管中不會顯示 Microsoft Entra 使用者。 解決方法是在 sys.database_principals 中檢視使用者。
- Microsoft JDBC Driver 6.0 for SQL Server 支援 Microsoft Entra 驗證。 此外,請參閱 設定連接屬性。
- Microsoft Entra 系統管理員帳戶會控制專用集區的存取權,而 Synapse RBAC 角色則用來控制無伺服器集區的存取,例如 Synapse 管理員istrator 和 Synapse SQL 管理員istrator 角色。 如需詳細資訊,請參閱 如何在 Synapse Studio 中管理 Synapse RBAC 角色指派,以透過 Synapse Studio 設定 Synapse RBAC 角色。
- 如果使用者設定為 Microsoft Entra 系統管理員和 Synapse 管理員istrator,然後從 Microsoft Entra 系統管理員角色中移除,則使用者將會失去 Synapse 中專用 SQL 集區的存取權。 它們必須移除,然後新增至 Synapse 管理員istrator 角色,才能重新取得專用 SQL 集區的存取權。
下一步
- 如需 Synapse SQL 中的存取控制概觀,請參閱 Synapse SQL 存取控制 。
- 如需資料庫主體的詳細資訊,請參閱主體。
- 如需資料庫角色的詳細資訊,請參閱資料庫角色。