使用 Microsoft Entra 驗證搭配 Synapse SQL 進行驗證
Microsoft Entra 驗證是一種機制,可透過在 entra ID 中使用 Microsoft身分識別連線到 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 ID 進行驗證,而且由資料庫信任。
客戶 1 可以代表具有原生使用者的Microsoft Entra 標識碼,或是具有同盟使用者的 Microsoft Entra 識別符。 客戶 2 代表可能的解決方案,包括匯入的使用者;在此範例中,來自同盟Microsoft Entra標識符,且 ADFS 與 Microsoft Entra ID 同步處理。
請務必了解使用 Microsoft Entra 驗證存取資料庫的必要條件是託管訂用帳戶要與 Microsoft Entra ID 相關聯。 相同的訂用帳戶必須用來建立裝載 Azure SQL 資料庫 或專用 SQL 集區的 SQL Server。
系統管理員結構
使用 Microsoft Entra 驗證時,Synapse SQL 有兩個系統管理員帳戶;原始 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 系統管理員登入,但將會停用。 稍後,Synapse 工作區的 Azure 擁有者或參與者可以啟用本機驗證。
您也可以在透過 Azure 入口網站 建立工作區之後停用本機驗證。 在 Azure Synapse 工作區建立 Microsoft Entra 系統管理員之前,無法停用本機驗證。
Microsoft Entra 功能和限制
您可以在 Synapse SQL 中布建下列Microsoft Entra 標識符的成員:
- 原生成員:在受控網域或客戶網域的 Microsoft Entra ID 中建立的成員。 如需詳細資訊,請參閱將您自己的網域名稱新增至 Microsoft Entra ID。
- 同盟網域成員:在具有同盟網域Microsoft Entra ID 中建立的成員。 如需詳細資訊,請參閱在 Azure 中部署 Active Directory 同盟服務。
- 從其他 Azure AD 匯入,且為原生網域或同盟網域成員者。
- 建立 Active Directory 群組作為安全性群組。
Microsoft屬於具有
db_owner
伺服器角色之群組的 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 問題。當在 entra 主體 Microsoft下執行時,這些系統函式會傳回 NULL 值:
SUSER_ID()
SUSER_NAME(<admin ID>)
SUSER_SNAME(<admin SID>)
SUSER_ID(<admin name>)
SUSER_SID(<admin name>)
使用 Microsoft Entra 身分識別進行連線
Microsoft Entra ID 驗證支援使用 Microsoft Entra ID 身分識別連線到資料庫的下列方法:
- Microsoft Entra 密碼
- 已與 Microsoft Entra 整合
- Microsoft Entra Universal 搭配 MFA
- 使用應用程式權杖驗證
Microsoft Entra 伺服器主體 (登入) 支援下列驗證方法:
- Microsoft Entra 密碼
- 已與 Microsoft Entra 整合
- Microsoft Entra Universal 搭配 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.1 [2016 年 4 月] 或更高版本) 支援 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)。 Microsoft Entra 使用者目前不會顯示在 SSDT 物件總管中。 解決方法是在 sys.database_principals 中檢視使用者。
- Microsoft JDBC Driver 6.0 for SQL Server 支援 Microsoft Entra 驗證。 此外,請參閱 設定連接屬性。
- Microsoft Entra 系統管理員帳戶可控制專用集區的存取權,而 Synapse RBAC 角色則用來控制無伺服器集區的存取,例如 Synapse Administrator 和 Synapse SQL 系統管理員 角色。 如需詳細資訊,請參閱 如何在 Synapse Studio 中管理 Synapse RBAC 角色指派,以透過 Synapse Studio 設定 Synapse RBAC 角色。
- 如果用戶設定為 Microsoft Entra administrator 和 Synapse Administrator,然後從 Microsoft Entra 系統管理員角色中移除,則使用者將會失去 Synapse 中專用 SQL 集區的存取權。 它們必須移除,然後新增至 Synapse 系統管理員角色,才能重新取得專用 SQL 集區的存取權。
下一步
- 如需 Synapse SQL 中的存取控制概觀,請參閱 Synapse SQL 訪問控制。
- 如需資料庫主體的詳細資訊,請參閱主體。
- 如需資料庫角色的詳細資訊,請參閱資料庫角色。