Share via


Linux에서 SQL Server용 Power BI Report Server 카탈로그 데이터베이스 구성

적용 대상: SQL Server 2019(15.x) 이상 - Linux SQL Server Reporting Services(2019 이상)

이 문서에서는 Sql Server on Linux용 PBIRS(Power BI Report Server) 카탈로그 데이터베이스를 설치하고 구성하는 방법을 설명합니다.

필수 조건

이 문서에서 예시에서는 도메인 CORPNET.CONTOSO.COM 및 다음 구성을 사용합니다.

컴퓨터 구성

컴퓨터 운영 체제 세부 정보
Windows 도메인 컨트롤러 Windows Server 2019 또는 Windows Server 2022
보고서 개발 및 배포(WIN19) Visual Studio 2019를 실행하는 Windows Server 2019 - 보고서 개발 및 배포

- 요청 기반 또는 예약된 보고서 출력의 리포지토리 역할을 하는 파일 공유 서비스
SQL Server Reporting Services(WIN22) 지원되는 버전의 Power BI Report Server(PBIRS)를 실행하는 Windows Server 20221
developer 도메인 SSMS(SQL Server Management Studio)를 실행하는 Windows 11 클라이언트
SQL Server 2019(rhel8test) 최신 CU를 사용하여 SQL Server 2019(15.x)를 실행하는 RHEL(Red Hat Enterprise Linux) 8.x Server

계정 구성

계정 이름 세부 정보
CORPNET\cluadmin 글로벌 사용자 계정 도메인 컨트롤러를 제외한 모든 Windows 서버의 로컬 관리자 계정.
CORPNET\pbirsservice PBIRS 서비스 계정
CORPNET\linuxservice SQL Server 서비스 계정(Linux 환경의 SQL Server용으로만 생성됨)
CORPNET\reportuser PBIRS의 일반 사용자를 시뮬레이션하는 데 사용되는 글로벌 사용자 계정

이 예시 시나리오에서는 별도의 서버와 별도의 계정을 사용하여 Kerberos 위임이 제대로 작동하는지(즉, 이중 홉 시나리오가 처리되고 있는지) 확인합니다.

Linux 기반 SQL Server 구성

Report Server 카탈로그 데이터베이스를 호스팅하기 위한 백엔드로 SQL Server on Linux를 사용하도록 PBIRS의 구성(또는 재구성)을 진행하기 전에 SQL Server on Linux 인스턴스가 도메인에 조인되어 있는지 확인합니다.

자습서: adutil을 사용하여 Linux에서 SQL Server로 Active Directory 인증 구성의 지침에 따라 adutil을 설치 및 구성하고 도메인에 조인할 수 있습니다.

참고

RHEL 8의 특정 패키지에 대한 자세한 내용은 SSSD를 사용하여 AD에 직접 RHEL 시스템 연결을 참조하세요.

SQL Server 서비스 사용자 이름(SPN)

PBIRS를 설치 및 구성하기 전에 CORPNET 도메인에서 필요한 SPN을 구성해야 합니다. 이 경우 도메인 관리자 권한이 있는 사용자를 사용할 수 있지만, SPN을 만들 수 있는 충분한 권한이 있는 사용자라면 누구나 사용할 수 있습니다. SPN을 만든 후에는 Kerberos 제한 위임을 사용하도록 계정을 구성해야 합니다.

이 시나리오에 필요한 최소 SPN은 다음과 같습니다.

  • 관리 명령 프롬프트를 사용하여 Linux에서 SQL Server 서비스 계정에 대한 SPN을 만듭니다. 이 인스턴스는 기본 포트 1433을 사용합니다.

    setspn -S MSSQLSvc/rhel8test:1433 CORPNET\linuxservice
    setspn -S MSSQLSvc/rhel8test.CORPNET.CONTOSO.COM:1433 CORPNET\linuxservice
    
  • 다음 두 SPN은 Power BI Report Server 서비스 계정에 대한 것입니다.

    setspn -S HTTP/WIN22.CORPNET.CONTOSO.COM CORPNET\pbirsservice
    setspn -S HTTP/WIN22 CORPNET\pbirsservice
    

제한된 위임 구현 내에서 운영할 때 Kerberos 티켓 전달을 위한 Kerberos 요구 사항을 처리하려면 RFC 4120에 명시된 대로 MIT Kerberos 표준에 대한 Microsoft의 확장을 사용하여 위임을 구성하고 S4U2proxy(Service for User to Proxy)를 사용합니다. 이 메커니즘을 사용하면 PBIRS 서비스 및 SQL Server 서비스가 사용자를 대신하여 지정된 다른 서비스에 대한 서비스 티켓을 가져올 수 있습니다.

예를 들어, reportuser가 보고서를 확인하기 위해 PBIRS 서버의 웹 인터페이스로 인증하면 보고서가 실행되고 SQL Server 테이블과 같은 데이터 원본의 데이터에 액세스해야 합니다. SQL Server 서비스는 인증 프로세스 중에 부여된 reportuser Kerberos 서비스 티켓을 획득해야 하며, 이 티켓은 PBIRS 서버에 대한 인증 과정에서 부여됩니다. S4U2proxy 확장은 사용자의 TGT(ticket granting ticket) 또는 사용자의 세션 키를 전달하지 않고도 필요한 자격 증명을 전달하기 위해 필요한 프로토콜 전환을 제공합니다.

이를 위해서는 도메인에서 PBIRS 서비스 계정(이 예시의 경우 pbirsservice) 및 SQL Server 서비스 계정(이 예시의 경우 linuxservice)에 위임용으로 인증하도록 트러스트됨 권한을 부여해야 합니다. 이 권한을 부여하는 방법에는 여러 가지가 있습니다(예: ADSI 편집, 컴퓨터 및 사용자 UI 등). 이 예시에서는 관리자 권한 PowerShell 명령을 사용해보겠습니다.

  • SQL Server 서비스 계정을 가져와 위임을 허용하도록 설정합니다. 이 단계에서는 Kerberos 위임뿐만 아니라 계정에서 S4U2proxy(프로토콜 전환용) 위임을 사용하도록 설정합니다. 마지막 두 cmdlet은 SQL Server 인스턴스에 대한 SPN인 도메인의 특정 리소스에 위임 권한을 적용합니다.

    Get-ADUser -Identity linuxservice | Set-ADAccountControl -TrustedToAuthForDelegation $True
    Set-ADUser -Identity linuxservice -Add @{'msDS-AllowedToDelegateTo'=@('MSSQLSvc/rhel8test.CORPNET.CONTOSO.COM:1433')}
    Set-ADUser -Identity linuxservice -Add @{'msDS-AllowedToDelegateTo'=@('MSSQLSvc/rhel8test:1433')}
    
  • Power BI Report Server 서비스 계정을 가져와 위임을 허용하도록 설정합니다. 이 단계에서는 Kerberos 위임뿐만 아니라 계정에서 S4U2proxy(프로토콜 전환용) 위임을 사용하도록 설정합니다. 마지막 두 cmdlet은 도메인의 특정 리소스, 즉 SQL Server 및 PBIRS 서버의 SPN에 위임 권한을 적용합니다.

    Get-ADUser -Identity pbirsservice | Set-ADAccountControl -TrustedToAuthForDelegation $True
    Set-ADUser -Identity pbirsservice -Add @{'msDS-AllowedToDelegateTo'=@('MSSQLSvc/rhel8test.CORPNET.CONTOSO.COM:1433')}
    Set-ADUser -Identity pbirsservice -Add @{'msDS-AllowedToDelegateTo'=@('MSSQLSvc/rhel8test:1433')}
    Set-ADUser -Identity pbirsservice -Add @{'msDS-AllowedToDelegateTo'=@('HTTP/Win22.CORPNET.CONTOSO.COM')}
    Set-ADUser -Identity pbirsservice -Add @{'msDS-AllowedToDelegateTo'=@('HTTP/Win22')}
    

Power BI Report Server(PBIRS)

PBIRS는 구성 전용 모드로 설치해야 합니다.

PBIRS를 설치한 직후 Kerberos 인증을 지원하도록 구성해야 합니다. PBIRS는 기본적으로 NTLM 인증만 지원합니다. 설치 프로세스 중에 UI 또는 명령줄을 통해 PBIRS 구성 프로세스를 완료하기 전에 PBIRS 구성 파일 중 하나를 업데이트해야 합니다. 기존 PBIRS 설치를 사용하는 경우 편집을 수행해야 하며 PBIRS 서비스를 다시 시작해야 적용됩니다. 구성 파일은 rsreportserver.config입니다. 이 파일은 PBIRS가 설치된 경로에 있습니다. 예를 들어, PBIRS의 기본 설치에서 파일은 다음 위치에 있습니다.

C:\Program Files\Microsoft SQL Server Reporting Services\SSRS\ReportServer

이 XML 파일은 모든 텍스트 편집기에서 편집할 수 있습니다. 편집하기 전에 파일의 복사본을 만들어야 합니다. 파일을 연 후 XML 문서 내에서 AuthenticationTypes 태그를 검색하고 RSWindowsNegotiate 특성 앞에 RSWindowsKerberosRSWindowsNTLM 특성을 추가합니다. 예시:

<Authentication>
<AuthenticationTypes>
    <RSWindowsNegotiate/>
    <RSWindowsKerberos/>
    <RSWindowsNTLM/>
</AuthenticationTypes>

SQL Server on Linux는 SQL 및 Kerberos 인증만 지원하므로 이 단계가 필요합니다.

참고

RSWindowsKerberos 특성만 포함하면 되지만, Windows 및 Linux SQL Server 인스턴스를 혼합하여 지원하는 여러 서버에서 PBIRS 구성 파일을 표준화하려는 경우 RSWindowsNegotiate를 사용하는 것이 유용합니다.

PBIRS UI 구성

구성 파일 편집이 완료된 후 PBIRS 서비스가 다시 시작되면 도메인 기반 서비스 계정 설정, Linux 인스턴스의 원격 SQL Server에 연결 등 나머지 PBIRS 구성 옵션을 진행할 수 있습니다.

적절한 권한이 있는 SQL Server 인스턴스 내에 PBIRS 서비스 계정이 표시되어야 합니다. 권한은 SSMS(SQL Server Management Studio)에서 확인할 수 있습니다. 개체 탐색기에서 보안 > 로그인으로 이동하여 CORPNET\pbirsservice 계정을 마우스 오른쪽 버튼으로 클릭한 다음 속성을 선택합니다. 권한은 사용자 매핑 페이지에 표시됩니다.

마지막으로 테스트 목적으로 SQL Server에 reportuser를 로그인으로 추가할 수 있습니다. 이 경우 쉬운 버튼을 사용하여 두 개의 사용자 데이터베이스 AdventureWorksAdventureWorksDW 내에서 db_datareader 역할에 사용자를 추가했습니다.

보고서가 배포된 후

보고서를 배포한 후 보고서 구독을 설정해야 하는 경우 PBIRS 데이터 원본에 포함된 자격 증명을 구성하는 것이 좋습니다. 보고서를 보는 사용자 가장 옵션으로 구성된 임베디드 자격 증명 사용을 제외한 모든 자격 증명 옵션이 정상적으로 작동합니다. 이 단계는 Windows 자격 증명을 사용할 때 실패하는데, 이는 가장을 더 어렵게 만드는 Linux용 SQL Server 구현 내의 제한 때문입니다.