教學課程:使用 Azure SQL 進行僅限 Microsoft Entra 驗證
本文內容
適用於: Azure SQL 資料庫 Azure SQL 受控執行個體
本文將引導您在 Azure SQL 資料庫和 Azure SQL 受控執行個體內啟用僅限 Microsoft Entra 驗證 功能。 如果想要佈建啟用 Microsoft Entra 驗證的 SQL Database 或 SQL 受控執行個體,請參閱在 Azure SQL 中建立啟用僅限 Microsoft Entra 驗證的伺服器 。
在本教學課程中,您會了解如何:
指派角色以啟用僅限 Microsoft Entra 驗證
使用 Azure 入口網站、Azure CLI 或 PowerShell 啟用僅限 Microsoft Entra 驗證
檢查是否已啟用僅限 Microsoft Entra 驗證
測試連線至 Azure SQL
使用 Azure 入口網站、Azure CLI 或 PowerShell 停用僅限 Microsoft Entra 驗證
必要條件
指派角色以啟用僅限 Microsoft Entra 驗證
若要啟用或停用僅限 Microsoft Entra 驗證,Microsoft Entra 使用者必須具備選定的內建角色,才能執行本教學課程中的這些作業。 我們將在本教學課程中將 SQL 安全性管理員 角色指派給使用者。
如需如何將角色指派給 Microsoft Entra 帳戶的詳細資訊,請參閱使用 Microsoft Entra ID 將管理員和非管理員角色指派給使用者
如需啟用或停用僅限 Microsoft Entra 驗證的必要權限的詳細資訊,請參閱僅限 Microsoft Entra 驗證相關文章的權限章節 。
在我們的範例中,我們會將 SQL 安全性管理員 角色指派給使用者 UserSqlSecurityManager@contoso.onmicrosoft.com
。 使用可指派 Microsoft Entra 角色的特殊權限使用者,登入 Azure 入口網站 。
移至您的 SQL Server 資源,然後選取功能表中的 [存取控制 (IAM)] 。 選取 [新增] 按鈕,然後從下拉式功能表選取 [新增角色指派]。
在 [新增角色指派] 窗格中,選取 [SQL 安全性管理員] 角色,然後選取您希望能夠啟用或停用僅限 Microsoft Entra 驗證的使用者。
按一下 [檔案] 。
啟用僅限 Microsoft Entra 驗證
使用 Azure 入口網站在 SQL Database 中啟用
若要在 Azure 入口網站中啟用僅限 Microsoft Entra 驗證,請依下列步驟操作:
使用具有 SQL 安全性管理員 角色的使用者,移至 Azure 入口網站 。
移至您的 SQL Server 資源,然後選取 [設定] 功能表底下的 [Microsoft Entra ID]。
如果尚未新增 Microsoft Entra 管理員 ,必須先設定此選項,才能啟用僅限 Microsoft Entra 驗證。
核取 [支援對此伺服器執行僅限 Microsoft Entra 驗證] 方塊。
[啟用僅限 Microsoft Entra 驗證] 彈出視窗隨即顯示。 選取 [是] 以啟用此功能並 [儲存] 設定。
使用 Azure 入口網站在 SQL 受控執行個體 中啟用
若要在 Azure 入口網站中啟用僅限 Microsoft Entra 驗證,請參照下列步驟。
使用具有 SQL 安全性管理員 角色的使用者,移至 Azure 入口網站 。
移至 SQL 受控執行個體 資源,然後選取 [設定] 功能表底下的 [Microsoft Entra 管理員]。
如果尚未新增 Microsoft Entra 管理員 ,必須先設定此選項,才能啟用僅限 Microsoft Entra 驗證。
選取 [此受控執行個體僅支援 Microsoft Entra 驗證] 核取方塊。
[啟用僅限 Microsoft Entra 驗證] 彈出視窗隨即顯示。 選取 [是] 以啟用此功能並 [儲存] 設定。
使用 Azure CLI 在 SQL Database 中啟用
若要使用 Azure CLI 在 Azure SQL 資料庫中啟用僅限 Microsoft Entra 驗證,請參照下方命令。 安裝最新版本的 Azure CLI 。 您的 Azure CLI 版本必須為 2.14.2 或更新版本。 如需這些命令的詳細資訊,請參閱 az sql server ad-only-auth 。
如需使用 API 管理僅限 Microsoft Entra 驗證的詳細資訊,請參閱使用 API 管理僅限 Microsoft Entra 驗證 。
注意
必須先為伺服器設定 Microsoft Entra 管理員,才能啟用僅限 Microsoft Entra 驗證。 否則,Azure CLI 命令將失敗。
如需執行這些命令以啟用僅限 Microsoft Entra 驗證之使用者所需的權限和動作,請參閱僅限 Microsoft Entra 驗證 一文。
使用具有 SQL 安全性管理員 角色的帳戶登入 Azure 。
az login
執行下列命令,用您的 SQL 伺服器名稱替換 <myserver>
,並用儲存 SQL Server 的 Azure 資源替換 <myresource>
。
az sql server ad-only-auth enable --resource-group <myresource> --name <myserver>
使用 Azure CLI 在 SQL 受控執行個體中啟用
若要使用 Azure CLI 在 Azure SQL 受控執行個體中啟用僅限 Microsoft Entra 驗證,請參照下方命令。 安裝最新版本的 Azure CLI 。
使用具有 SQL 安全性管理員 角色的帳戶登入 Azure 。
az login
執行下列命令,用您的 SQL 伺服器名稱替換 <myserver>
,並用儲存 SQL Server 的 Azure 資源替換 <myresource>
。
az sql mi ad-only-auth enable --resource-group <myresource> --name <myserver>
使用 PowerShell 在 SQL Database 中啟用
若要使用 PowerShell 在 Azure SQL 資料庫中啟用僅限 Microsoft Entra 驗證,請參照下方命令。 需要 Az.Sql 2.10.0 模組或更高版本才能執行這些命令。 如需這些命令的詳細資訊,請參閱 Enable-AzSqlInstanceActiveDirectoryOnlyAuthentication 。
如需使用 API 管理僅限 Microsoft Entra 驗證的詳細資訊,請參閱使用 API 管理僅限 Microsoft Entra 驗證
注意
必須先為伺服器設定 Microsoft Entra 管理員,才能啟用僅限 Microsoft Entra 驗證。 否則,PowerShell 命令將失敗。
如需執行這些命令以啟用僅限 Microsoft Entra 驗證之使用者所需的權限和動作,請參閱僅限 Microsoft Entra 驗證 一文。 如果使用者的權限不足,您會收到下列錯誤:
Enable-AzSqlServerActiveDirectoryOnlyAuthentication : The client
'UserSqlServerContributor@contoso.onmicrosoft.com' with object id
'<guid>' does not have authorization to perform
action 'Microsoft.Sql/servers/azureADOnlyAuthentications/write' over scope
'/subscriptions/<guid>...'
使用具有 SQL 安全性管理員 角色的帳戶登入 Azure 。
Connect-AzAccount
執行下列命令,用您的 SQL 伺服器名稱替換 <myserver>
,並用儲存 SQL Server 的 Azure 資源替換 <myresource>
。
Enable-AzSqlServerActiveDirectoryOnlyAuthentication -ServerName <myserver> -ResourceGroupName <myresource>
使用 PowerShell 在 SQL 受控執行個體中啟用
若要使用 PowerShell 在 Azure SQL 受控執行個體中啟用僅限 Microsoft Entra 驗證,請參照下方命令。 需要 Az.Sql 2.10.0 模組或更高版本才能執行這些命令。
如需使用 API 管理僅限 Microsoft Entra 驗證的詳細資訊,請參閱使用 API 管理僅限 Microsoft Entra 驗證 。
使用具有 SQL 安全性管理員 角色的帳戶登入 Azure 。
Connect-AzAccount
執行下列命令,用您的 SQL 受控執行個體名稱替換 <myinstance>
,並用儲存 SQL 受控執行個體 的 Azure 資源替換 <myresource>
。
Enable-AzSqlInstanceActiveDirectoryOnlyAuthentication -InstanceName <myinstance> -ResourceGroupName <myresource>
檢查僅限 Microsoft Entra 驗證的狀態
檢查您的伺服器或執行個體是否已啟用僅限 Microsoft Entra 驗證。
檢查 SQL Database 中的狀態
移至 Azure 入口網站 上您的 SQL Server 資源。 選取 [設定] 功能表底下的 [Microsoft Entra ID]。
檢查 SQL 受控執行個體中的狀態
在 Azure 入口網站 中移至您的 SQL 受控執行個體 資源。 選取 [設定] 功能表底下的 [Microsoft Entra 管理員]。
這些命令可用來檢查是否已為您的 Azure SQL 資料庫或 SQL 受控執行個體的邏輯伺服器 啟用僅限 Microsoft Entra 驗證。 SQL Server 參與者 和 SQL 受控執行個體參與者 角色的成員可以使用這些命令來檢查僅限 Microsoft Entra 驗證的狀態,但無法啟用或停用此功能。
檢查 SQL Database 中的狀態
使用具有 SQL 安全性管理員 角色的帳戶登入 Azure 。 如需使用 API 管理僅限 Microsoft Entra 驗證的詳細資訊,請參閱使用 API 管理僅限 Microsoft Entra 驗證
az login
執行下列命令,用您的 SQL 伺服器名稱替換 <myserver>
,並用儲存 SQL Server 的 Azure 資源替換 <myresource>
。
az sql server ad-only-auth get --resource-group <myresource> --name <myserver>
您應該會看見下列輸出:
{
"azureAdOnlyAuthentication": true,
"/subscriptions/<guid>/resourceGroups/mygroup/providers/Microsoft.Sql/servers/myserver/azureADOnlyAuthentications/Default",
"name": "Default",
"resourceGroup": "myresource",
"type": "Microsoft.Sql/servers"
}
檢查 SQL 受控執行個體中的狀態
使用具有 SQL 安全性管理員 角色的帳戶登入 Azure 。
az login
執行下列命令,用您的 SQL 伺服器名稱替換 <myserver>
,並用儲存 SQL Server 的 Azure 資源替換 <myresource>
。
az sql mi ad-only-auth get --resource-group <myresource> --name <myserver>
您應該會看見下列輸出:
{
"azureAdOnlyAuthentication": true,
"id": "/subscriptions/<guid>/resourceGroups/myresource/providers/Microsoft.Sql/managedInstances/myinstance/azureADOnlyAuthentications/Default",
"name": "Default",
"resourceGroup": "myresource",
"type": "Microsoft.Sql/managedInstances"
}
這些命令可用來檢查是否已為您的 Azure SQL 資料庫或 SQL 受控執行個體的邏輯伺服器 啟用僅限 Microsoft Entra 驗證。 SQL Server 參與者 和 SQL 受控執行個體參與者 角色的成員可以使用這些命令來檢查僅限 Microsoft Entra 驗證的狀態,但無法啟用或停用此功能。
如果功能已啟用,狀態會傳回 True ;如果功能停用,則會傳回 False 。
檢查 SQL Database 中的狀態
使用具有 SQL 安全性管理員 角色的帳戶登入 Azure 。 如需使用 API 管理僅限 Microsoft Entra 驗證的詳細資訊,請參閱使用 API 管理僅限 Microsoft Entra 驗證
Connect-AzAccount
執行下列命令,用您的 SQL 伺服器名稱替換 <myserver>
,並用儲存 SQL Server 的 Azure 資源替換 <myresource>
。
Get-AzSqlServerActiveDirectoryOnlyAuthentication -ServerName <myserver> -ResourceGroupName <myresource>
檢查 SQL 受控執行個體中的狀態
使用具有 SQL 安全性管理員 角色的帳戶登入 Azure 。
Connect-AzAccount
執行下列命令,用您的 SQL 受控執行個體名稱替換 <myinstance>
,並用儲存 SQL 受控執行個體 的 Azure 資源替換 <myresource>
。
Get-AzSqlInstanceActiveDirectoryOnlyAuthentication -InstanceName <myinstance> -ResourceGroupName <myresource>
測試連線失敗的 SQL 驗證
啟用僅限 Microsoft Entra 驗證之後,請使用 SQL Server Management Studio (SSMS) 進行測試,以連線至您的 SQL Database 或 SQL 受控執行個體 。 使用 SQL 驗證進行連線。
您應該會看到類似如下輸出的登入失敗訊息:
Cannot connect to <myserver>.database.windows.net.
Additional information:
Login failed for user 'username'. Reason: Azure Active Directory only authentication is enabled.
Please contact your system administrator. (Microsoft SQL Server, Error: 18456)
停用僅限 Microsoft Entra 驗證
停用僅限 Microsoft Entra 驗證功能之後,您將允許對 Azure SQL 執行 SQL 驗證和 Microsoft Entra 驗證。
使用 Azure 入口網站在 SQL Database 中停用
使用具有 SQL 安全性管理員 角色的使用者,移至 Azure 入口網站 。
移至您的 SQL Server 資源,然後選取 [設定] 功能表底下的 [Microsoft Entra ID]。
若要停用僅限 Microsoft Entra 驗證功能,請取消核取 [支援對此伺服器執行僅限 Microsoft Entra 驗證] 方塊並 [儲存] 設定。
使用 Azure 入口網站在 SQL 受控執行個體 中停用
使用具有 SQL 安全性管理員 角色的使用者,移至 Azure 入口網站 。
移至 SQL 受控執行個體 資源,然後選取 [設定] 功能表底下的 [Active Directory 管理員]。
若要停用僅限 Microsoft Entra 驗證功能,請取消核取 [支援對此受控執行個體執行僅限 Microsoft Entra 驗證] 方塊並 [儲存] 設定。
使用 Azure CLI 在 SQL Database 中停用
若要使用 Azure CLI 在 Azure SQL 資料庫中停用僅限 Microsoft Entra 驗證,請參照下方命令。
使用具有 SQL 安全性管理員 角色的帳戶登入 Azure 。
az login
執行下列命令,用您的 SQL 伺服器名稱替換 <myserver>
,並用儲存 SQL Server 的 Azure 資源替換 <myresource>
。
az sql server ad-only-auth disable --resource-group <myresource> --name <myserver>
停用僅限 Microsoft Entra 驗證之後,您應該會在檢查狀態時看到以下輸出:
{
"azureAdOnlyAuthentication": false,
"/subscriptions/<guid>/resourceGroups/mygroup/providers/Microsoft.Sql/servers/myserver/azureADOnlyAuthentications/Default",
"name": "Default",
"resourceGroup": "myresource",
"type": "Microsoft.Sql/servers"
}
使用 Azure CLI 在 SQL 受控執行個體中停用
若要使用 Azure CLI 在 Azure SQL 受控執行個體中停用僅限 Microsoft Entra 驗證,請參照下方命令。
使用具有 SQL 安全性管理員 角色的帳戶登入 Azure 。
az login
執行下列命令,用您的 SQL 伺服器名稱替換 <myserver>
,並用儲存 SQL Server 的 Azure 資源替換 <myresource>
。
az sql mi ad-only-auth disable --resource-group <myresource> --name <myserver>
停用僅限 Microsoft Entra 驗證之後,您應該會在檢查狀態時看到以下輸出:
{
"azureAdOnlyAuthentication": false,
"id": "/subscriptions/<guid>/resourceGroups/myresource/providers/Microsoft.Sql/managedInstances/myinstance/azureADOnlyAuthentications/Default",
"name": "Default",
"resourceGroup": "myresource",
"type": "Microsoft.Sql/managedInstances"
}
使用 PowerShell 在 SQL Database 中停用
若要使用 PowerShell 在 Azure SQL 資料庫中停用僅限 Microsoft Entra 驗證,請參照下方命令。
使用具有 SQL 安全性管理員 角色的帳戶登入 Azure 。
Connect-AzAccount
執行下列命令,用您的 SQL 伺服器名稱替換 <myserver>
,並用儲存 SQL Server 的 Azure 資源替換 <myresource>
。
Disable-AzSqlServerActiveDirectoryOnlyAuthentication -ServerName <myserver> -ResourceGroupName <myresource>
使用 PowerShell 在 SQL 受控執行個體中停用
若要使用 PowerShell 在 Azure SQL 受控執行個體中停用僅限 Microsoft Entra 驗證,請參照下方命令。
使用具有 SQL 安全性管理員 角色的帳戶登入 Azure 。
Connect-AzAccount
執行下列命令,用您的 SQL 受控執行個體名稱替換 <myinstance>
,並用儲存受控執行個體的 Azure 資源替換 <myresource>
。
Disable-AzSqlInstanceActiveDirectoryOnlyAuthentication -InstanceName <myinstance> -ResourceGroupName <myresource>
再次測試連線至 Azure SQL
停用僅限 Microsoft Entra 驗證之後,請使用 SQL 驗證登入資訊來測試連線。 現在應該能夠連線至您的伺服器或執行個體。
下一步