Active Directory 모드에서 빅 데이터 클러스터 액세스 관리

적용 대상: SQL Server 2019(15.x)

중요

Microsoft SQL Server 2019 빅 데이터 클러스터 추가 기능이 사용 중지됩니다. SQL Server 2019 빅 데이터 클러스터에 대한 지원은 2025년 2월 28일에 종료됩니다. Software Assurance를 사용하는 SQL Server 2019의 모든 기존 사용자는 플랫폼에서 완전히 지원되며, 소프트웨어는 지원 종료 시점까지 SQL Server 누적 업데이트를 통해 계속 유지 관리됩니다. 자세한 내용은 공지 블로그 게시물Microsoft SQL Server 플랫폼의 빅 데이터 옵션을 참조하세요.

이 문서에서는 clusterUsers 구성 설정을 통해 배포하는 동안 제공된 역할 외에도 bdcUser 역할이 있는 새 Active Directory 그룹을 추가하는 방법을 설명합니다.

Important

이 절차를 사용하여 bdcAdmin 역할이 있는 새 Active Directory 그룹을 추가하지 마세요. HDFS 및 Spark 등의 Hadoop 구성 요소는 BDC의 bdcAdmin 역할에 해당하는 하나의 Active Directory 그룹만 슈퍼 사용자 그룹으로 허용합니다. 배포 후 빅 데이터 클러스터에 bdcAdmin 권한이 있는 추가 Active Directory 그룹을 부여하려면 배포 중에 이미 지명된 그룹에 추가 사용자 및 그룹을 추가해야 합니다. 동일한 절차에 따라 bdcUsers 역할이 있는 그룹 멤버 자격을 업데이트할 수 있습니다.

빅 데이터 클러스터의 가장 중요한 두 가지 역할

Active Directory 그룹은 빅 데이터 클러스터 내에서 권한 부여를 위한 가장 중요한 두 가지 역할의 일부로 배포 프로필의 보안 섹션에서 제공할 수 있습니다.

  • clusterAdmins: 이 매개 변수는 하나의 Active Directory 그룹을 사용합니다. 이 그룹의 멤버에는 bdcAdmin 역할이 있습니다. 즉, 전체 클러스터에 대한 관리자 권한이 있는 것입니다. SQL Server의 sysadmin 권한, HDFS(Hadoop 분산 파일 시스템) 및 Spark의 슈퍼 사용자 권한 및 컨트롤러의 관리자 권한이 있습니다.

  • clusterUsers: 이러한 Active Directory 그룹은 BDC의 bdcUsers 역할에 매핑됩니다. 이들은 클러스터에서 관리자 권한이 없는 일반 사용자입니다. SQL Server 마스터 인스턴스에 로그인할 수 있는 권한이 있지만 기본적으로 개체 또는 데이터에 대한 사용 권한은 없습니다. 슈퍼 사용자 권한이 없는 HDFS 및 Spark의 일반 사용자입니다. 컨트롤러 엔드포인트에 연결하는 경우 이러한 사용자는 엔드포인트를 쿼리할 수 있습니다(azdata bdc 엔드포인트 목록을 사용).

Active Directory 내에서 그룹 멤버 자격을 변경하지 않고 추가 Active Directory 그룹 bdcUser 권한을 부여하려면 다음 섹션의 절차를 완료합니다.

추가 Active Directory 그룹에 bdcUser 권한 부여

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-ADUser 또는 Get-ADGroup PowerShell 명령을 사용하면 됩니다.

  4. 컨트롤러 엔드포인트에 로그인하거나 SQL Server 마스터 인스턴스에 인증하여 추가한 그룹의 멤버에 필요한 bdcUser 권한이 있는지 확인합니다. 예시:

    azdata login
    azdata bdc endpoints list
    

다음 단계