Linux üzerinde SQL Server için Power BI Rapor Sunucusu katalog veritabanlarını yapılandırma

Şunlar için geçerlidir: Linux SQL Server Reporting Services'da SQL Server 2019 (15.x) ve sonraki sürümleri (2019 ve sonraki sürümler)

Bu makalede, Linux üzerinde SQL Server için Power BI Rapor Sunucusu (PBIRS) katalog veritabanını yükleme ve yapılandırma işlemleri açıklanmaktadır.

Prerequisites

Bu makalede, örneklerde etki alanı CORPNET.CONTOSO.COMve aşağıdaki yapılandırma kullanılır.

Makineleri yapılandırma

Makine İşletim Sistemi Details
Windows etki alanı denetleyicisi Windows Server 2019 veya Windows Server 2022
Rapor geliştirme ve dağıtım (WIN19) Visual Studio 2019 çalıştıran Windows Server 2019 - Rapor geliştirme ve dağıtım

- Talep temelli veya zamanlanmış rapor çıktısı için depo görevi görecek dosya paylaşımı hizmetleri
SQL Server Reporting Services (WIN22) Power BI Rapor Sunucusu'nun (PBIRS) desteklenen bir sürümünü çalıştıran Windows Server 2022 1
Geliştirici bilgisayarı SQL Server Management Studio (SSMS) çalıştıran Windows 11 istemcisi
SQL Server 2019 (rhel8test) Red Hat Enterprise Linux (RHEL) 8.x Sunucusu, SQL Server 2019 (15.x) ile en son kümülatif güncelleme (CU) ile çalışıyor

Hesapları yapılandırma

Hesap adı Details
CORPNET\cluadmin Genel kullanıcı hesabı. Etki alanı denetleyicisi dışındaki tüm Windows sunucularında Yerel Yönetici hesabı.
CORPNET\pbirsservice PBIRS hizmet hesabı
CORPNET\linuxservice SQL Server hizmet hesabı (yalnızca Linux üzerinde SQL Server ortamı için oluşturulur)
CORPNET\reportuser PBIRS normal kullanıcısının benzetimini yapmak için kullanılan genel kullanıcı hesabı

Bu örnek senaryo, Kerberos delegasyonunun düzgün çalışmasını sağlamak için ayrı sunucular ve ayrı hesaplar kullanır (yani, çift atlama senaryolarını yönetir).

Linux üzerinde SQL Server yapılandırması

PBIRS'i Linux üzerinde SQL Server olarak Report Server katalog veritabanlarını barındıracak arka uç olarak yapılandırmadan (veya yeniden yapılandırmadan) önce, Linux üzerinde SQL Server örneğinin alan adıyla birleştiğinden emin olun.

Alan adını kurmak, yapılandırmak adutil ve katılmak için Tutorial'daki talimatları izleyin: Linux üzerinde SQL Server ile Active Directory doğrulamasını yapılandırmak için adutil kullanın.

Note

RHEL 8'de belirli paketler hakkında bilgi için bkz. SSSD kullanarak RHEL sistemlerini doğrudan AD'ye bağlama.

SQL Server hizmet asıl adları (SPN'ler)

PBIRS'i kurup yapılandırmadan önce, alan üzerinde CORPNET gerekli SPN'leri yapılandırın. Alan Adı Yöneticisi ayrıcalıklarına sahip bir hesap kullanabilirsiniz, ancak SPN oluşturacak kadar izni olan herhangi bir hesap yeterlidir. SPN'leri oluşturduktan sonra, hesapları Kerberos kısıtlı delegasyonunu kullanacak şekilde yapılandırın.

Bu senaryo aşağıdaki minimum SPN'leri gerektirir:

  • Yönetici komut isteğinden, Linux üzerinde SQL Server servis hesabı için SPN oluşturun. Bu örnek, varsayılan 1433 portunu kullanır:

    setspn -S MSSQLSvc/rhel8test:1433 CORPNET\linuxservice
    setspn -S MSSQLSvc/rhel8test.CORPNET.CONTOSO.COM:1433 CORPNET\linuxservice
    
  • Sonraki iki SPN, Power BI Rapor Sunucusu hizmet hesabı içindir.

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

Kısıtlı delegasyon uygulaması içinde çalışırken Kerberos biletlerini iletme gereksinimlerini yönetmek için, delegasyonu RFC 4120'de belirtilen Microsoft'un MIT Kerberos standardına uzantısı kullanarak yapılandırır ve Kullanıcı Proxy'ye Hizmet (S4U2proxy) kullanılır. Bu mekanizma, PBIRS servisi ve SQL Server hizmetinin, bir kullanıcı adına diğer belirlenmiş hizmetlere hizmet biletleri almasını sağlar.

Örneğin, raporu reportuser görüntülemek için PBIRS sunucusunun web arayüzüyle kimlik doğrulaması yapıldığında, rapor çalışır ve SQL Server tablosu gibi bir veri kaynağından verilere erişmek zorundadır. SQL Server servisi, kimlik doğrulama sırasında PBIRS sunucusuna verilen Kerberos servis biletini almalıdırreportuser. S4U2proxy uzantısı, kullanıcının TGT (bilet verme bileti) veya oturum anahtarını iletmeden gerekli kimlik bilgilerini aktarmak için gerekli protokol geçişini sağlar.

Bu sonuca ulaşmak için, PBIRS hizmet hesabına (pbirsservicebu örnekte) ve SQL Server hizmet hesabına (linuxservicebu örnekte) Devre Yetenmesi için Güvenilir Kimlik Doğrulama (Güvenilir Doğrulama) özelliğini alan alanında verebilirsiniz. Bu hakkı birden fazla şekilde verebilirsiniz (örneğin, ADSI Edit veya Bilgisayar ve Kullanıcılar arayüzü). Bu örnek, yükseltilmiş bir PowerShell komutu kullanır:

  • SQL Server hizmet hesabını alın ve temsilci seçmeye izin verecek şekilde ayarlayın. Bu adım yalnızca Kerberos temsilcisini değil, hesapta S4U2proxy (protokol geçişi için) temsilini de etkinleştirir. Son iki cmdlet, temsilci yetkilisini etki alanındaki belirli kaynaklara (SQL Server örneğinin SPN'leri) uygular.

    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 Rapor Sunucusu hizmet hesabını alın ve temsilci seçmeye izin verecek şekilde ayarlayın. Bu adım yalnızca Kerberos temsilcisini değil, hesapta S4U2proxy (protokol geçişi için) temsilini de etkinleştirir. Son iki cmdlet, temsil yetkilisini etki alanındaki belirli kaynaklara, SQL Server ve PBIRS sunucusu spn'lerine uygular.

    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 Rapor Sunucusu (PBIRS)

PBIRS'i sadece yapılandırma modunda kurun.

PBIRS'yi yükledikten hemen sonra, Kerberos kimlik doğrulamasını destekleyecek şekilde yapılandırmanız gerekir. PBIRS varsayılan olarak yalnızca NTLM kimlik doğrulamasını destekler. Kurulum sırasında, PBIRS yapılandırmasını tamamlamadan önce arayüzde veya komut satırı üzerinden PBIRS yapılandırma dosyalarından birini güncellebilirsiniz. Mevcut bir PBIRS kurulumunu kullanıyorsanız, değişikliklerin yürürlüğe girmesi için düzenlemeleri yapın ve PBIRS servisini yeniden başlatın. Yapılandırma dosyası rsreportserver.config. PBIRS'in kurulduğu yolda. Örneğin, PBIRS'nin varsayılan yüklemesinde dosya aşağıdaki konumdadır:

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

Bu XML dosyasını düzenlemek için herhangi bir metin düzenleyiciyi kullanın. Dosyayı düzenlemeden önce kopyalayın. Dosyayı açtıktan sonra, XML belgesinde etiketi AuthenticationTypes arayın ve özniteliğin önüne RSWindowsNTLM ve RSWindowsKerberos niteliklerini ekleyinRSWindowsNegotiate. Örneğin:

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

Bu adımı tamamlamalısınız çünkü Linux üzerinde SQL Server yalnızca SQL ve Kerberos kimlik doğrulamasını destekliyor.

Note

Sadece bu RSWindowsKerberos özniteliği eklemeniz yeterli, ancak RSWindowsNegotiate Windows ve Linux SQL Server örneklerini destekleyen bir filo sunucu arasında PBIRS yapılandırma dosyalarını standartlaştırmak istiyorsanız faydalıdır.

PBIRS kullanıcı arabirimi yapılandırması

Yapılandırma dosyası düzenlemeleri tamamlandıktan sonra PBIRS hizmeti yeniden başlatıldıktan sonra, etki alanı tabanlı hizmet hesabını ayarlama ve Linux örneğinde uzak SQL Server'a bağlanma gibi kalan PBIRS yapılandırma seçenekleriyle devam edebilirsiniz.

PBIRS hizmet hesabı uygun izinlere sahip SQL Server örneğinde görünmelidir. SQL Server Management Studio'da (SSMS) izinleri denetleyebilirsiniz. Nesne Gezgini'nde, Güvenlik > Oturum Açmagidin, CORPNET\pbirsservice hesabına sağ tıklayın ve özellikler seçin. İzinler Kullanıcı Eşlemesi sayfasında görünür.

Son olarak, reportuser test amaçlı SQL Server'a giriş olarak ekleyin. Bu durumda, basit bir yaklaşımı seçtiniz ve kullanıcıyı iki kullanıcı veritabanı içinde db_datareader sabit veritabanı rolüne eklediniz: AdventureWorks ve AdventureWorksDW.

Raporlar yayınlandıktan sonra

Raporlar dağıtıldıktan sonra rapor aboneliklerini ayarlamanız gerekiyorsa, PBIRS veri kaynaklarında katıştırılmış kimlik bilgilerini yapılandırmak iyi bir uygulamadır. raporu görüntüleyen kullanıcının kimliğine bürünme seçeneği ile yapılandırılmış katıştırılmış kimlik bilgilerinin kullanımı hariç tüm kimlik bilgisi seçenekleri düzgün çalışır. Linux üzerinde SQL Server uygulamasında kimliğe bürünme işlemini zorlaştıran bir sınırlama nedeniyle Windows kimlik bilgileri kullanılırken bu adım başarısız olur.