教學課程:使用 Azure SQL 啟用僅限 Microsoft Entra 驗證
本文內容
適用於: Azure SQL Database Azure SQL 受控執行個體
本文會引導您在 Azure SQL 資料庫 和 Azure SQL 受控執行個體 內啟用僅限 Microsoft Entra 驗證 功能。 如果您想要布建已啟用 Microsoft Entra 驗證的 SQL 資料庫 或 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 識別符的使用者
如需啟用或停用僅限 Microsoft Entra 驗證的必要許可權詳細資訊,請參閱 僅限 Microsoft Entra 驗證 的許可權一節。
在我們的範例中,我們會將 SQL 安全性管理員角色指派給使用者 UserSqlSecurityManager@contoso.onmicrosoft.com
。 使用可指派 Microsoft Entra 角色的特殊許可權使用者,登入 Azure 入口網站 。
移至您的 SQL Server 資源,然後選取 功能表中的 [存取控制][IAM ]。 選取 [ 新增 ] 按鈕,然後在 下拉功能表中新增角色指派 。
在 [ 新增角色指派 ] 窗格中,選取 [角色 SQL 安全性管理員 ],然後選取您想要啟用或停用僅限 Microsoft Entra 驗證的使用者。
按一下 [檔案] 。
啟用使僅限 Microsoft Entra 驗證
使用 Azure 入口網站 在 SQL 資料庫 中啟用
若要在 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 資料庫 中啟用
若要使用 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
執行下列命令,並以 <myserver>
您的 SQL 伺服器名稱取代 ,並以 <myresource>
保留 SQL Server 的 Azure 資源取代 。
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
執行下列命令,並以 <myserver>
您的 SQL 伺服器名稱取代 ,並以 <myresource>
保留 SQL Server 的 Azure 資源取代 。
az sql mi ad-only-auth enable --resource-group <myresource> --name <myserver>
使用 PowerShell 在 SQL 資料庫 中啟用
若要使用 PowerShell 在 Azure 中啟用僅限 Microsoft Entra 驗證 SQL 資料庫,請參閱下列命令。 需要 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
執行下列命令,並以 <myserver>
您的 SQL 伺服器名稱取代 ,並以 <myresource>
保留 SQL Server 的 Azure 資源取代 。
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
執行下列命令,將 <myinstance>
取代為您的 SQL 受管理執行個體 名稱,並以<myresource>
保留 SQL 受控實例的 Azure 資源取代 。
Enable-AzSqlInstanceActiveDirectoryOnlyAuthentication -InstanceName <myinstance> -ResourceGroupName <myresource>
檢查僅限 Microsoft Entra 的驗證狀態
檢查您的伺服器或實例是否已啟用僅限 Microsoft Entra 驗證。
在 SQL 資料庫 中檢查狀態
移至 Azure 入口網站 中的 SQL Server 資源。 選取 [設定] 功能表下的 [Microsoft 項目標識符 ]。
在 SQL 受管理執行個體 中檢查狀態
移至 Azure 入口網站 中的 SQL 受控實例 資源。 選取 [設定] 功能表下的 [Microsoft Entra 系統管理員 ]。
這些命令可用來檢查 Azure SQL 資料庫 或 SQL 受管理執行個體 的邏輯伺服器 是否已啟用僅限 Microsoft Entra 驗證。 SQL Server 參與者 和 SQL 受管理執行個體 參與者 角色的成員可以使用這些命令來檢查僅限 Microsoft Entra 驗證的狀態,但無法啟用或停用此功能。
在 SQL 資料庫 中檢查狀態
使用具有 SQL 安全性管理員 角色的 帳戶登入 Azure。 如需使用 API 管理僅限 Microsoft Entra 驗證的詳細資訊,請參閱 使用 API 管理僅限 Microsoft Entra 驗證
az login
執行下列命令,並以 <myserver>
您的 SQL 伺服器名稱取代 ,並以 <myresource>
保留 SQL Server 的 Azure 資源取代 。
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
執行下列命令,並以 <myserver>
您的 SQL 伺服器名稱取代 ,並以 <myresource>
保留 SQL Server 的 Azure 資源取代 。
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 資料庫 中檢查狀態
使用具有 SQL 安全性管理員 角色的 帳戶登入 Azure。 如需使用 API 管理僅限 Microsoft Entra 驗證的詳細資訊,請參閱 使用 API 管理僅限 Microsoft Entra 驗證
Connect-AzAccount
執行下列命令,並以 <myserver>
您的 SQL 伺服器名稱取代 ,並以 <myresource>
保留 SQL Server 的 Azure 資源取代 。
Get-AzSqlServerActiveDirectoryOnlyAuthentication -ServerName <myserver> -ResourceGroupName <myresource>
在 SQL 受管理執行個體 中檢查狀態
使用具有 SQL 安全性管理員 角色的 帳戶登入 Azure。
Connect-AzAccount
執行下列命令,並以<myinstance>
您的 SQL 受管理執行個體 名稱取代 ,並以<myresource>
保留 SQL 受控實例的 Azure 資源取代 。
Get-AzSqlInstanceActiveDirectoryOnlyAuthentication -InstanceName <myinstance> -ResourceGroupName <myresource>
測試連線失敗的 SQL 驗證
啟用僅限 Microsoft Entra 驗證之後,請使用 SQL Server Management Studio (SSMS) 進行測試,以連線到您的 SQL 資料庫 或 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 資料庫 中停用
使用具有 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 資料庫 中停用
若要使用 Azure CLI 在 Azure SQL 資料庫 中停用僅限 Microsoft Entra 驗證,請參閱下列命令。
使用具有 SQL 安全性管理員 角色的 帳戶登入 Azure。
az login
執行下列命令,並以 <myserver>
您的 SQL 伺服器名稱取代 ,並以 <myresource>
保留 SQL Server 的 Azure 資源取代 。
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
執行下列命令,並以 <myserver>
您的 SQL 伺服器名稱取代 ,並以 <myresource>
保留 SQL Server 的 Azure 資源取代 。
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 資料庫 中停用
若要使用PowerShell在 Azure SQL 資料庫 中停用僅限 Microsoft Entra 驗證,請參閱下列命令。
使用具有 SQL 安全性管理員 角色的 帳戶登入 Azure。
Connect-AzAccount
執行下列命令,並以 <myserver>
您的 SQL 伺服器名稱取代 ,並以 <myresource>
保留 SQL Server 的 Azure 資源取代 。
Disable-AzSqlServerActiveDirectoryOnlyAuthentication -ServerName <myserver> -ResourceGroupName <myresource>
使用 PowerShell 在 SQL 受管理執行個體 中停用
若要使用PowerShell在 Azure SQL 受控執行個體 中停用僅限 Microsoft Entra 驗證,請參閱下列命令。
使用具有 SQL 安全性管理員 角色的 帳戶登入 Azure。
Connect-AzAccount
執行下列命令,並以<myinstance>
您的 SQL 受管理執行個體 名稱取代 ,並以<myresource>
保留受控實例的 Azure 資源取代 。
Disable-AzSqlInstanceActiveDirectoryOnlyAuthentication -InstanceName <myinstance> -ResourceGroupName <myresource>
再次測試連線至 Azure SQL
停用僅限 Microsoft Entra 驗證之後,請使用 SQL 驗證登入來測試連線。 您現在應該能夠連線到您的伺服器或實例。
下一步