Aracılığıyla paylaş


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.

Önkoşullar

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

Makineleri yapılandırma

Makine İşletim Sistemi Detaylar
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) En son CU ile SQL Server 2019 (15.x) çalıştıran Red Hat Enterprise Linux (RHEL) 8.x Server

Hesapları yapılandırma

Hesap adı Detaylar
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 senaryoda Kerberos temsilcisinin düzgün çalıştığından emin olmak için ayrı sunucular ve ayrı hesaplar kullanılır (yani, çift atlama senaryoları işlenir).

Linux üzerinde SQL Server yapılandırması

Rapor Sunucusu katalog veritabanlarını barındırmak için arka uç olarak Linux üzerinde SQL Server kullanmak üzere PBIRS yapılandırmasına (veya yeniden yapılandırmasına) devam etmeden önce, Linux örneğindeki SQL Server'ın etki alanına katılmış olduğundan emin olun.

adutilyükleyip yapılandırabilir ve Öğreticisi: Linuxüzerinde SQL Server ile Active Directory kimlik doğrulamasını yapılandırmak için adutil kullanma yönergelerini izleyerek etki alanına katılabilirsiniz.

Not

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'yi yüklemeden ve yapılandırmadan önce, CORPNET etki alanında gerekli SPN'leri yapılandırmanız gerekir. Bu durumda Etki Alanı Yöneticisi ayrıcalıklarına sahip bir kullanıcı kullanılabilir, ancak SPN oluşturmak için yeterli izinlere sahip olan tüm kullanıcılar yeterlidir. SPN oluşturulduktan sonra hesapların Kerberos kısıtlanmış temsili kullanacak şekilde yapılandırılması gerekir.

Bu senaryo için gereken en düşük SPN'ler şunlardır:

  • Bir Yönetim komut istemi kullanarak Linux üzerinde SQL Server hizmet hesabı için SPN'yi oluşturun. Bu örnek varsayılan 1433 bağlantı noktasını kullanıyor:

    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
    

Kerberos biletlerini iletmeye yönelik Kerberos gereksinimlerini işlemek için, kısıtlanmış bir temsil uygulaması içinde çalışırken, RFC 4120'de belirtildiği gibi Microsoft'un MIT Kerberos standardı uzantısını kullanarak temsilci seçmeyi yapılandırıyoruz ve Kullanıcıdan Ara Sunucuya için Hizmeti'ni (S4U2proxy) kullanıyoruz. Bu mekanizma, PBIRS hizmetinin ve SQL Server hizmetinin bir kullanıcı adına belirtilen diğer hizmetlere hizmet biletleri almasını sağlar.

Örneğin, reportuser bir raporu görüntülemek için PBIRS sunucusunun web arabirimiyle kimlik doğrulaması gerçekleştirdiğinde, rapor yürütülür ve SQL Server tablosu gibi bir veri kaynağından verilere erişmesi gerekir. SQL Server hizmetinin, PBIRS sunucusuna kimlik doğrulama işlemi sırasında verilen reportuser Kerberos hizmet anahtarını alması gerekir. S4U2proxy uzantısı, kullanıcının TGT'sini (anahtar verme bileti) veya kullanıcının oturum anahtarını iletmek zorunda kalmadan gerekli kimlik bilgilerini geçirmek için gerekli protokol geçişini sağlar.

Bunu başarmak için, PBIRS hizmet hesabına (bu örnektepbirsservice) ve SQL Server hizmet hesabına (bu örnektelinuxservice) doğrudan etki alanında Temsilci için Kimlik Doğrulaması Için Güvenilen verilmelidir. Bu hakkı vermenin birden çok yolu vardır (adsi düzenleme, bilgisayar ve kullanıcı arabirimi vb.). Bu örnekte yükseltilmiş bir PowerShell komutu kullanıyoruz:

  • 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 yalnızca yapılandırmada ve modunda yüklenmelidir.

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. Yükleme işlemi sırasında, kullanıcı arabiriminde veya komut satırı aracılığıyla PBIRS yapılandırma işlemini tamamlamadan önce PBIRS yapılandırma dosyalarından birini güncelleştirmeniz gerekir. Mevcut bir PBIRS yüklemesini kullanıyorsanız, düzenlemeleri gerçekleştirmeniz ve PBIRS hizmetinin etkili olması için yeniden başlatılması gerekir. Yapılandırma dosyası rsreportserver.config. PBIRS'in yüklendiği 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ı herhangi bir metin düzenleyicisinde düzenlenebilir. Düzenlemeden önce dosyanın bir kopyasını oluşturmayı unutmayın. Dosyayı açtıktan sonra XML belgesinde AuthenticationTypes etiketini arayın ve RSWindowsNegotiate özniteliğinin önüne RSWindowsKerberos ve RSWindowsNTLM özniteliklerini ekleyin. Örneğin

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

Linux'ta SQL Server yalnızca SQL ve Kerberos kimlik doğrulamalarını desteklediği için bu adım gereklidir.

Not

Yalnızca RSWindowsKerberos özniteliğini eklememiz gerekir, ancak Windows ve Linux SQL Server örneklerinin bir karışımını destekleyen bir sunucu filosunda PBIRS yapılandırma dosyalarını standartlaştırmak isteniyorsa RSWindowsNegotiate kullanmak yararlı olur.

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, test amacıyla reportuser SQL Server'da oturum açma adı olarak ekleyebiliriz. Bu durumda, kolay düğmesini aldık ve kullanıcıyı iki kullanıcı veritabanındaki db_datareader rolüne ekledik: 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.