적용 대상: Linux
SQL Server Reporting Services의 SQL Server 2019(15.x) 이상 버전(2019 이상 버전)
이 문서에서는 Sql Server on Linux용 PBIRS(Power BI Report Server) 카탈로그 데이터베이스를 설치하고 구성하는 방법을 설명합니다.
Prerequisites
이 문서에서 예시에서는 도메인 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 | |
| 개발자 컴퓨터 | SSMS(SQL Server Management Studio)를 실행하는 Windows 11 클라이언트 | |
SQL Server 2019(rhel8test) |
Red Hat Enterprise Linux (RHEL) 8.x 서버, 최신 누적 업데이트(CU)가 적용된 SQL Server 2019 (15.x) 실행 |
계정 구성
| 계정 이름 | 세부 정보 |
|---|---|
CORPNET\cluadmin |
글로벌 사용자 계정 도메인 컨트롤러를 제외한 모든 Windows 서버의 로컬 관리자 계정. |
CORPNET\pbirsservice |
PBIRS 서비스 계정 |
CORPNET\linuxservice |
SQL Server 서비스 계정(Linux 환경의 SQL Server용으로만 생성됨) |
CORPNET\reportuser |
PBIRS의 일반 사용자를 시뮬레이션하는 데 사용되는 글로벌 사용자 계정 |
이 예시 시나리오는 별도의 서버와 계정을 사용하여 Kerberos 위임이 제대로 작동하도록 보장합니다(즉, 더블 홉 시나리오를 처리합니다).
Linux 기반 SQL Server 구성
PBIRS를 SQL Server on Linux on Linux를 백엔드로 사용해 Report Server 카탈로그 데이터베이스를 호스팅하도록 구성(또는 재구성)하기 전에, SQL Server on Linux 인스턴스가 도메인에 가입되어 있는지 확인하세요.
도메인을 설치하고 구성 adutil 하며 가입하려면 튜토리얼의 지침을 따르세요: adutil을 사용해 SQL Server on Linux에서 Active Directory 인증을 설정하세요.
메모
RHEL 8의 특정 패키지에 대한 자세한 내용은 SSSD를 사용하여 AD에 직접 RHEL 시스템 연결을 참조하세요.
SQL Server 서비스 주체 이름(SPN)
PBIRS를 설치하고 구성하기 전에 도메인에 CORPNET 필요한 SPN을 설정하세요. 도메인 관리자 권한이 있는 계정을 사용할 수 있지만, SPN을 생성할 수 있는 권한이 충분한 계정이면 충분합니다. SPN을 생성한 후에는 Kerberos 제한 위임을 사용하도록 계정을 설정하세요.
이 시나리오에서는 다음과 같은 최소 SPN이 필요합니다:
관리자 명령 프롬프트에서 SQL Server on Linux 서비스 계정의 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 티켓 전달 요구사항을 처리하려면, RFC 4120에 명시된 Microsoft의 MIT Kerberos 표준 확장을 사용하여 위임을 구성하고, 사용자 투 프록시 서비스(S4U2proxy)를 사용합니다. 이 메커니즘은 PBIRS 서비스와 SQL Server 서비스가 사용자를 대신해 다른 지정된 서비스의 서비스 티켓을 받을 수 있게 합니다.
예를 들어, reportuser PBIRS 서버의 웹 인터페이스로 인증을 하여 보고서를 볼 때, 보고서는 실행되며 SQL Server 테이블과 같은 데이터 소스에서 데이터를 접근해야 합니다. SQL Server 서비스는 인증 시 PBIRS 서버에 부여된 Kerberos 서비스 티켓을 받아 reportuser 야 합니다. S4U2proxy 확장은 사용자의 TGT(티켓 부여 티켓)나 세션 키를 전달하지 않고 필요한 자격 증명을 전달할 수 있는 필요한 프로토콜 전환을 제공합니다.
이 결과를 달성하기 위해, PBIRS 서비스 계정(pbirsservice이 예시)과 SQL Server 서비스 계정(linuxservice예시)에 도메인 내에서 신뢰 인증 위임 권한을 부여합니다. 이 권한은 여러 방법으로 부여할 수 있습니다(예: ADSI Edit나 컴퓨터 및 사용자 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 인증만 지원합니다. 설치 중에는 PBIRS 구성을 완료하기 전에 UI나 명령줄을 통해 PBIRS 구성 파일 중 하나를 업데이트하세요. 기존 PBIRS 설치를 사용한다면, 변경 사항이 적용되도록 수정 후 PBIRS 서비스를 재시작하세요. 구성 파일은 rsreportserver.config입니다. PBIRS가 설치된 경로에 있습니다. 예를 들어, PBIRS의 기본 설치에서 파일은 다음 위치에 있습니다.
C:\Program Files\Microsoft SQL Server Reporting Services\SSRS\ReportServer
이 XML 파일을 편집하려면 어떤 텍스트 편집기든 사용할 수 있습니다. 편집하기 전에 파일을 복사하세요. 파일을 열면 XML 문서 내에서 태그를 AuthenticationTypes 검색하고, 속성 앞 RSWindowsNTLM 에 and RSWindowsKerberos 속성을 추가 RSWindowsNegotiate 하세요. 다음은 그 예입니다.
<Authentication>
<AuthenticationTypes>
<RSWindowsNegotiate/>
<RSWindowsKerberos/>
<RSWindowsNTLM/>
</AuthenticationTypes>
이 단계를 완료해야 하는데, SQL Server on Linux는 SQL과 Kerberos 인증만 지원하기 때문입니다.
메모
속성만 포함 RSWindowsKerberos 하면 되지만RSWindowsNegotiate, Windows와 Linux SQL Server 인스턴스를 혼합하는 서버 대에서 PBIRS 구성 파일을 표준화하고 싶을 때 유용합니다.
PBIRS UI 구성
구성 파일 편집이 완료된 후 PBIRS 서비스가 다시 시작되면 도메인 기반 서비스 계정 설정, Linux 인스턴스의 원격 SQL Server에 연결 등 나머지 PBIRS 구성 옵션을 진행할 수 있습니다.
적절한 권한이 있는 SQL Server 인스턴스 내에 PBIRS 서비스 계정이 표시되어야 합니다. 권한은 SSMS(SQL Server Management Studio)에서 확인할 수 있습니다. 개체 탐색기에서 보안 > 로그인으로 이동하여 CORPNET\pbirsservice 계정을 마우스 오른쪽 버튼으로 클릭한 다음 속성을 선택합니다. 권한은 사용자 매핑 페이지에 표시됩니다.
마지막으로, 테스트 목적으로 SQL Server에 로그인 정보를 추가 reportuser 하세요. 이 경우, 간단한 방식을 선택하여 사용자를 두 개의 사용자 데이터베이스 내에서 고정된 데이터베이스 역할 db_datareader 에 추가했습니다: AdventureWorksAdventureWorksDW와 .
보고서가 배포된 후
보고서를 배포한 후 보고서 구독을 설정해야 하는 경우 PBIRS 데이터 원본에 포함된 자격 증명을 구성하는 것이 좋습니다. 보고서를 보는 사용자 가장 옵션으로 구성된 임베디드 자격 증명 사용을 제외한 모든 자격 증명 옵션이 정상적으로 작동합니다. 이 단계는 Windows 자격 증명을 사용할 때 실패합니다. 이는 Linux용 SQL Server 구현의 제한으로 인해 사용자 가명이 더 어려워지기 때문입니다.