Управление доступом к кластеру больших данных в режиме Active Directory

Область применения: SQL Server 2019 (15.x)

Important

Кластеры больших данных Microsoft SQL Server 2019 прекращены. Поддержка кластеров больших данных SQL Server 2019 закончилась с 28 февраля 2025 г. Дополнительные сведения см. в записи блога объявлений и параметрах больших данных на платформе Microsoft SQL Server.

В этой статье описывается, как добавить новые группы Active Directory с ролями bdcUser в дополнение к тем, которые предоставляются во время развертывания с помощью параметра конфигурации clusterUsers .

Important

Не используйте эту процедуру для добавления новых групп Active Directory с ролью bdcAdmin . Компоненты Hadoop, такие как HDFS и Spark, разрешают только одну группу Active Directory в качестве группы суперпользователя — эквивалент роли bdcAdmin в BDC. Чтобы предоставить дополнительные группы Active Directory с разрешениями bdcAdmin в кластер больших данных после развертывания, необходимо добавить дополнительных пользователей и групп в уже назначенные группы во время развертывания. Вы можете выполнить ту же процедуру, чтобы обновить членство в группе с ролью bdcUsers .

Две общие роли в кластере больших данных

Группы Active Directory можно предоставить в разделе безопасности профиля развертывания в рамках двух общих ролей для аутентификации в кластере больших данных.

  • clusterAdmins: этот параметр принимает одну группу Active Directory. Члены этой группы имеют роль bdcAdmin , то есть получают разрешения администратора для всего кластера. У них есть разрешения sysadmin в SQL Server, разрешения суперпользователя в Распределенной файловой системе Hadoop (HDFS) и Spark, а также права администратора в контроллере.

  • clusterUsers: эти группы Active Directory сопоставляются с ролью bdcUsers в BDC. Они являются обычными пользователями без разрешений администратора в кластере. У них есть разрешения на вход в главный экземпляр SQL Server, но по умолчанию у них нет разрешений на объекты или данные. Они являются обычными пользователями для HDFS и Spark без разрешений суперпользователя . При подключении к конечной точке контроллера эти пользователи могут запрашивать только конечные точки (используя список конечных точек azdata bdc).

Чтобы предоставить дополнительные разрешения группы Active Directory bdcUser без изменения членства в группах в Active Directory, выполните действия в следующих разделах.

Предоставление разрешений bdcUser дополнительным группам Active Directory

Создание имени входа для пользователя Или группы Active Directory в главном экземпляре SQL Server

  1. Подключитесь к главной конечной точке SQL с помощью любимого клиента SQL. Используйте любое имя входа администратора (например, AZDATA_USERNAMEкоторое было предоставлено во время развертывания). Кроме того, это может быть любая учетная запись Active Directory, которая принадлежит группе Active Directory, указанной как clusterAdmins в конфигурации безопасности.

  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
    

    Чтобы найти идентификатор безопасности добавляемого пользователя или группы, можно использовать команды Get-ADUser или Get-ADGroup PowerShell.

  4. Убедитесь, что у членов добавленной вами группы есть ожидаемые разрешения bdcUser, войдя в конечную точку контроллера или выполнив проверку подлинности в главном экземпляре SQL Server. For example:

    azdata login
    azdata bdc endpoints list
    

Next steps