共用方式為


在 Active Directory 模式中管理巨量數據叢集存取

適用於:SQL Server 2019 (15.x)

Important

MICROSOFT SQL Server 2019 巨量數據叢集已淘汰。 SQL Server 2019 巨量數據叢集的支援已於 2025 年 2 月 28 日結束。 如需詳細資訊,請參閱 Microsoft SQL Server 平臺上的公告部落格文章和巨量數據選項。

本文說明如何新增具有 bdcUser 角色的新 Active Directory 群組,來補充透過 clusterUsers 組態設定在部署期間提供的群組。

Important

請勿使用此程式新增具有 bdcAdmin 角色的新 Active Directory 群組。 Hadoop 元件,例如 HDFS 和 Spark,只允許一個 Active Directory 群組作為超級使用者群組,相當於 BDC 中的 bdcAdmin 角色。 若要在部署後將 具有 bdcAdmin 許可權的其他 Active Directory 群組授與巨量數據叢集,您必須在部署期間將其他使用者和群組新增至已提名的群組。 您可以遵循相同的程式來更新具有 bdcUsers 角色的群組成員資格。

巨量數據叢集中的兩個整體角色

您可以在部署設定檔的安全性區段中提供 Active Directory 群組,作為巨量數據叢集中授權的兩個整體角色的一部分:

  • clusterAdmins:此參數接受一個Active Directory 群組。 此群組的成員具有 bdcAdmin 角色,這表示他們取得整個叢集的系統管理員許可權。 他們在 SQL Server 中具有 系統管理員 許可權、Hadoop 分散式文件系統 (HDFS) 和 Spark 中的 超級用戶 許可權,以及控制器中的 系統管理員 許可權。

  • clusterUsers:這些 Active Directory 群組會對應至 BDC 中的 bdcUsers 角色。 它們是一般使用者,沒有叢集中的系統管理員許可權。 他們有權登入 SQL Server 主要實例,但根據預設,它們沒有對象或數據的許可權。 它們是 HDFS 和 Spark 的一般使用者,沒有 超級用戶 的許可權。 連接到控制器端點時,這些使用者只能查詢端點(使用 azdata bdc endpoints list)。

若要授與其他 Active Directory 群組 bdcUser 許可權,而不改變 Active Directory 內的群組成員資格,請完成下一節中的程式。

bdcUser 許可權授與其他 Active Directory 群組

在 SQL Server 主實例中,為 Active Directory 的使用者或群組建立登入帳號。

  1. 使用您慣用的 SQL 用戶端連線到主要 SQL 端點。 使用任何系統管理員帳戶(例如,部署期間提供的 AZDATA_USERNAME 帳號)。 或者,它可以是任何屬於在安全性組態中作為 clusterAdmins 提供的 Active Directory 群組的 Active Directory 帳戶。

  2. 若要建立 Active Directory 使用者或群組的登入,請執行下列 Transact-SQL 命令:

    CREATE LOGIN [<domain>\<principal>] FROM WINDOWS;
    

    授與 SQL Server 實例中所需的許可權:

    ALTER SERVER ROLE <server role> ADD MEMBER [<domain>\<principal>];
    GO
    

如需伺服器角色的完整清單,請參閱 這裡的對應 SQL Server 安全性主題。

將 Active Directory 使用者或群組新增至控制器資料庫中的角色數據表

  1. 執行下列命令來取得控制器 SQL Server 認證:

    a. 以 Kubernetes 系統管理員身分執行此命令:

    kubectl get secret controller-sa-secret -n <cluster name> -o yaml | grep password
    

    b. Base64 譯碼秘密:

    echo <password from kubectl command>  | base64 --decode && echo
    
  2. 在不同的命令視窗中,公開控制器資料庫伺服器埠:

    kubectl port-forward controldb-0 1433:1433 --address 0.0.0.0 -n <cluster name>
    
  3. 使用上述連接,在 角色active_directory_principals 數據表中插入新的數據列。 以大寫字母輸入 REALM 值。

    USE controller;
    GO
    
    INSERT INTO [controller].[auth].[roles] VALUES (N'<user or group name>@<REALM>', 'bdcUser')
    GO
    
    INSERT INTO [controller].[auth].[active_directory_principals] VALUES (N'<user or group name>@<REALM>', N'<SID>')
    GO
    

    若要尋找要新增之使用者或群組的 SID,您可以使用 Get-ADUserGet-ADGroup PowerShell 命令。

  4. 登入控制器端點或向 SQL Server 主要實例驗證,確認您新增的群組成員具有預期的 bdcUser 許可權。 For example:

    azdata login
    azdata bdc endpoints list
    

Next steps