以最低權限執行透過 Azure Arc 啟用的 SQL Server (預覽)

適用於:SQL Server

最低權限的資訊安全性原則斷定帳戶和應用程式只能存取所需的資料和作業。 透過透過 Azure Arc 啟用的 SQL Server,您就可以透過最低權限執行代理程式延伸項目服務。 本文說明如何使用最低權限執行代理程式延伸項目服務。

若要選擇設定服務以最低權限執行,請遵循本文中的步驟。 目前,服務不會以最低權限自動執行。

設定適用於 SQL Server 的 Azure 延伸模組的 Windows 服務帳戶和權限,這說明代理程式延伸項目服務的最低權限。

注意

如果 Azure 延伸項目是版本 1.1.2594.118 (2024 年 2 月版本) 或更新的版本,則最低權限模式將會在未來幾個月自動啟用。

此設定的支援目前可供預覽。

注意

作為預覽功能,本文所述的技術受限於 Microsoft Azure 預覽版增補使用規定

版本資訊 - 透過 Azure Arc 啟用的 SQL Server 中提供最新的更新。

設定代理程式延伸項目服務以最低權限執行之後,它會使用 NT Service\SQLServerExtension 服務帳戶。

NT Service\SQLServerExtension 帳戶是本機 Windows 服務帳戶:

  • 啟用最低權限選項時,由適用於 SQL Server 的 Azure 延伸模組建立及管理。
  • 授與在 Windows 作業系統上執行適用於 SQL Server 的 Azure 延伸模組服務所需的最低權限。 它只能存取用於讀取和儲存設定或寫入記錄的資料夾和目錄。
  • 授與使用新增登入在 SQL Server 中連接和查詢的權限,特別是針對具有所需最低權限的服務帳戶。 最低權限取決於已啟用的功能。
  • 不再需要權限時更新。 例如,當您停用功能、停用最低權限設定或卸載適用於 SQL Server 的 Azure 延伸模組時,會撤銷權限。 撤銷可確保在不再需要權限之後,不會保留權限。

必要條件

本節會列出完成本文範例所需的系統需求和工具。

系統需求

具有最低權限的設定需要:

  • Windows Server 2012 或更新版本
  • SQL Server 2012 或更新版本

Linux 目前不支援具有最低權限的設定。

工具

若要完成本文中的步驟,您需要下列工具︰

啟用最低權限

  1. 使用 Azure CLI 登入。

    az login
    
  2. 確認 arcdata 延伸模組版本。

    az extension list -o table
    

    如果結果包含支援的 arcdata 版本,請跳至下一個步驟。

    如有必要,請安裝或更新 arcdata Azure CLI 延伸模組。

    安裝擴充功能:

    az extension add --name arcdata
    

    更新延伸模組:

    az extension update --name arcdata
    
  3. 使用 Azure CLI 啟用最低權限。

    若要啟用最低權限,請將 LeastPrivilege 功能旗標設定為 true。 若要完成這項工作,請使用 <resource-group><machine-name> 的更新值執行下列命令。

    az sql server-arc extension feature-flag set --name LeastPrivilege --enable true --resource-group <resource-group> --machine-name <machine-name>
    

    例如,下列命令為名為 myrg 的資源群組中名為 myserver 的伺服器啟用最低權限:

    az sql server-arc extension feature-flag set --name LeastPrivilege --enable true --resource-group myrg --machine-name myserver 
    

驗證設定

若要確認透過 Azure Arc 啟用的 SQL Server 已設定為以最低權限執行:

  1. 在 Windows 服務中,找出 Microsoft SQL Server Extension Service 服務。 確認服務以服務帳戶 NT Service\SqlServerExtension 身分執行。 

  2. 在伺服器中開啟工作排程器,並檢查是否已在 SqlServerExtensionPermissionProvider 下建立名稱為 Microsoft\SqlServerExtension 的排程工作。 此工作會每小時執行,以根據啟用和停用的功能視需要新增或移除權限。

  3. 開啟 SQL Server Management Studio 並檢查名為 NT Service\SqlServerExtension 的登入。 確認已為帳戶指派下列權限:

    • 連線 SQL
    • 檢視資料庫狀態
    • 檢視伺服器狀態
  4. 使用下列查詢驗證權限:

    若要驗證伺服器層級權限,請執行下列查詢:

    EXECUTE AS LOGIN = 'NT Service\SqlServerExtension'  
    SELECT * FROM fn_my_permissions (NULL, 'SERVER");
    

    若要驗證資料庫層級權限,請以其中一個資料庫的名稱取代 <database name>,然後執行下列查詢:

    EXECUTE AS LOGIN = 'NT Service\SqlServerExtension'  
    USE <database name>; 
    SELECT * FROM fn_my_permissions (NULL, 'database");
    

停用最低權限

若要停用最低權限,請將 LeastPrivilege 功能旗標設定為 false。 若要完成這項工作,請使用 <resource-group><machine-name> 的更新值執行下列命令:

az sql server-arc extension feature-flag set --name LeastPrivilege --enable false --resource-group <resource-group> --machine-name <machine-name>

例如,下列命令為名為 myrg 的資源群組中名為 myserver 的伺服器停用最低權限:

az sql server-arc extension feature-flag set --name LeastPrivilege --enable false --resource-group myrg --machine-name myserver