Управление доступом к кластеру больших данных в режиме AD DS
Область применения: SQL Server 2019 (15.x)
Внимание
Поддержка надстройки "Кластеры больших данных" Microsoft SQL Server 2019 будет прекращена. Мы прекратим поддержку Кластеров больших данных SQL Server 2019 28 февраля 2025 г. Все существующие пользователи SQL Server 2019 с Software Assurance будут полностью поддерживаться на платформе, и программное обеспечение будет продолжать поддерживаться с помощью накопительных обновлений SQL Server до этого времени. Дополнительные сведения см. в записи блога объявлений и в статье о параметрах больших данных на платформе Microsoft SQL Server.
В этой статье описывается, как добавить новые группы Active Directory с ролями bdcUser в дополнение к тем, которые были предоставлены во время развертывания с помощью параметра конфигурации clusterUsers.
Внимание
Не используйте эту процедуру для добавления новых групп Active Directory с ролью bdcAdmin. Компоненты Hadoop, такие как HDFS и Spark, допускают только одну группу Active Directory в качестве группы суперпользователя — эквивалент роли bdcAdmin в BDC. Чтобы предоставить группам AD DS дополнительные разрешения bdcAdmin для кластера больших данных после развертывания, следует добавить пользователей и группы в уже назначенные группы во время развертывания. Вы можете выполнить ту же процедуру, чтобы обновить членство в группе с ролью bdcUsers.
Две ключевые роли в кластере больших данных
Группы AD DS предоставляются в разделе безопасности профиля развертывания как часть двух ключевых ролей для авторизации в кластере больших данных:
clusterAdmins
: этот параметр принимает одну группу Active Directory. Члены этой группы имеют роль bdcAdmin, то есть получают разрешения администратора для всего кластера. Они имеют разрешения sysadmin в SQL Server, superuser в распределенной файловой системе Hadoop (HDFS) и Spark, а также права администратора в контроллере.clusterUsers
: эти группы Active Directory сопоставляются с ролью bdcUsers в BDC. Это обычные пользователи без прав администратора в кластере. У них есть разрешения на вход в главный экземпляр SQL Server, но по умолчанию они не имеют разрешений на доступ к объектам или данным. Это обычные пользователи для HDFS и Spark, без разрешений суперпользователя. При подключении к конечной точке контроллера эти пользователи могут запрашивать только конечные точки (с помощью команды azdata bdc endpoints list).
Чтобы предоставить группам AD DS дополнительные разрешения bdcUser без изменения членства в группах в AD DS, выполните процедуры, описанные в следующих разделах.
Предоставление разрешений bdcUser для дополнительных групп Active Directory
Создание имени входа для пользователя AD DS или группы в главном экземпляре SQL Server
Подключитесь к главной конечной точке SQL с использованием избранного клиента SQL. Используйте любое имя входа администратора (например
AZDATA_USERNAME
, которое было предоставлено во время развертывания). Кроме того, это может быть любая учетная запись AD DS, которая входит в группу AD DS, предоставленную какclusterAdmins
в конфигурации безопасности.Чтобы создать имя входа для пользователя или группы Active Directory, выполните следующую команду Transact-SQL:
CREATE LOGIN [<domain>\<principal>] FROM WINDOWS;
Предоставьте необходимые разрешения в экземпляре SQL Server:
ALTER SERVER ROLE <server role> ADD MEMBER [<domain>\<principal>]; GO
Полный список ролей сервера см. в соответствующем разделе о безопасности SQL Server здесь.
Добавление пользователя или группы AD DS в таблицу ролей в базе данных контроллера
Получите учетные данные 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
В отдельном командном окне предоставьте порт сервера базы данных контроллера:
kubectl port-forward controldb-0 1433:1433 --address 0.0.0.0 -n <cluster name>
Используйте предыдущее подключение для вставки новой строки в таблицы roles и 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
Чтобы найти ИД безопасности пользователя или добавляемой группы, можно использовать команды PowerShell Get-ADUser или Get-ADGroup.
Убедитесь, что добавленные члены группы имеют ожидаемые разрешения bdcUser, выполнив вход на конечную точку контроллера или пройдя проверку подлинности в основном экземпляре SQL Server. Например:
azdata login azdata bdc endpoints list