適用於: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 的使用者或群組建立登入帳號。
使用您慣用的 SQL 用戶端連線到主要 SQL 端點。 使用任何系統管理員帳戶(例如,部署期間提供的
AZDATA_USERNAME帳號)。 或者,它可以是任何屬於在安全性組態中作為clusterAdmins提供的 Active Directory 群組的 Active Directory 帳戶。若要建立 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 使用者或群組新增至控制器資料庫中的角色數據表
執行下列命令來取得控制器 SQL Server 認證:
a. 以 Kubernetes 系統管理員身分執行此命令:
kubectl get secret controller-sa-secret -n <cluster name> -o yaml | grep passwordb. Base64 譯碼秘密:
echo <password from kubectl command> | base64 --decode && echo在不同的命令視窗中,公開控制器資料庫伺服器埠:
kubectl port-forward controldb-0 1433:1433 --address 0.0.0.0 -n <cluster name>使用上述連接,在 角色 和 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-ADUser 或 Get-ADGroup PowerShell 命令。
登入控制器端點或向 SQL Server 主要實例驗證,確認您新增的群組成員具有預期的 bdcUser 許可權。 For example:
azdata login azdata bdc endpoints list