Bagikan melalui


Mengonfigurasi database katalog Server Laporan Power BI untuk SQL Server di Linux

Berlaku untuk: SQL Server 2019 (15.x) dan yang lebih baru - Linux SQL Server Reporting Services (2019 dan yang lebih baru)

Artikel ini menjelaskan cara menginstal dan mengonfigurasi database katalog Power BI Report Server (PBIRS) untuk SQL Server di Linux.

Prasyarat

Dalam artikel ini, contoh menggunakan domain CORPNET.CONTOSO.COM, dan konfigurasi berikut.

Mengonfigurasi komputer

Komputer Sistem operasi Detail
Pengontrol domain Windows Windows Server 2019 atau Windows Server 2022
Melaporkan pengembangan dan penyebaran (WIN19) Windows Server 2019, menjalankan Visual Studio 2019 - Melaporkan pengembangan dan penyebaran

- Layanan berbagi file untuk berfungsi sebagai repositori untuk permintaan yang didorong atau output laporan terjadwal
SQL Server Reporting Services (WIN22) Windows Server 2022, menjalankan versi Power BI Report Server (PBIRS) 1 yang didukung
Mesin pengembang Klien Windows 11, menjalankan SQL Server Management Studio (SSMS)
SQL Server 2019 (rhel8test) Red Hat Enterprise Linux (RHEL) 8.x Server, menjalankan SQL Server 2019 (15.x) dengan CU terbaru

Mengonfigurasi akun

Nama akun Detail
CORPNET\cluadmin Akun pengguna global. Akun Administrator Lokal di semua server Windows kecuali untuk pengendali domain.
CORPNET\pbirsservice Akun layanan PBIRS
CORPNET\linuxservice Akun layanan SQL Server (dibuat hanya untuk SQL Server di lingkungan Linux)
CORPNET\reportuser Akun pengguna global yang digunakan untuk mensimulasikan pengguna normal PBIRS

Server terpisah dan akun terpisah digunakan dalam skenario contoh ini untuk memastikan bahwa delegasi Kerberos berfungsi dengan baik (yaitu, skenario double-hop sedang ditangani).

Konfigurasi SQL Server di Linux

Sebelum melanjutkan konfigurasi (atau konfigurasi ulang) PBIRS untuk menggunakan SQL Server di Linux sebagai backend untuk menghosting database katalog Server Laporan, pastikan bahwa SQL Server pada instans Linux telah bergabung ke domain.

Anda dapat menginstal dan mengonfigurasi adutil, dan bergabung dengan domain, mengikuti instruksi dalam Tutorial: Gunakan adutil untuk mengonfigurasi autentikasi Direktori Aktif dengan SQL Server di Linux.

Catatan

Untuk informasi tentang paket tertentu di RHEL 8, lihat Koneksi sistem RHEL langsung ke AD menggunakan SSSD.

Nama perwakilan layanan SQL Server (SPN)

Sebelum menginstal dan mengonfigurasi PBIRS, Anda harus mengonfigurasi SPN yang diperlukan pada CORPNET domain. Pengguna dengan hak istimewa Admin Domain dapat digunakan dalam kasus ini, tetapi setiap pengguna dengan izin yang cukup untuk membuat SPN sudah cukup. Setelah pembuatan SPN, akun perlu dikonfigurasi untuk menggunakan delegasi yang dibatasi Kerberos.

Berikut adalah SPN minimum yang diperlukan untuk skenario ini:

  • Dengan menggunakan perintah Administratif, buat SPN untuk SQL Server di akun layanan Linux. Instans ini menggunakan port default 1433:

    setspn -S MSSQLSvc/rhel8test:1433 CORPNET\linuxservice
    setspn -S MSSQLSvc/rhel8test.CORPNET.CONTOSO.COM:1433 CORPNET\linuxservice
    
  • Dua SPN berikutnya adalah untuk akun layanan Server Laporan Power BI.

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

Untuk menangani persyaratan Kerberos untuk meneruskan tiket Kerberos, saat beroperasi dalam implementasi delegasi yang dibatasi, kami mengonfigurasi delegasi menggunakan ekstensi Microsoft ke standar MIT Kerberos, seperti yang ditentukan dalam RFC 4120, dan menggunakan Layanan untuk Pengguna ke Proksi (S4U2proxy). Mekanisme ini memungkinkan layanan PBIRS dan layanan SQL Server untuk mendapatkan tiket layanan ke layanan lain yang ditentukan atas nama pengguna.

Misalnya, ketika reportuser mengautentikasi dengan antarmuka web server PBIRS untuk melihat laporan, laporan dijalankan dan harus mengakses data dari sumber data seperti tabel SQL Server. Layanan SQL Server harus mendapatkan reportuser tiket layanan Kerberos, yang diberikan selama proses autentikasi ke server PBIRS. Ekstensi S4U2proxy menyediakan transisi protokol yang diperlukan untuk meneruskan kredensial yang diperlukan tanpa harus meneruskan TGT pengguna (tiket pemberian tiket) atau kunci sesi pengguna.

Untuk mencapai hal ini, akun layanan PBIRS (pbirsservice dalam contoh ini) dan akun layanan SQL Server (linuxservice dalam contoh ini) perlu diberikan Trusted To Authenticate untuk Delegasi tepat di domain. Ada beberapa cara untuk memberikan hak ini (yaitu, ADSI Edit, UI Komputer dan Pengguna, dll.). Kami menggunakan perintah PowerShell yang ditingkatkan dalam contoh ini:

  • Dapatkan akun layanan SQL Server dan atur untuk mengizinkan delegasi. Langkah ini tidak hanya memungkinkan delegasi Kerberos, tetapi delegasi S4U2proxy (untuk transisi protokol) pada akun. Dua cmdlet terakhir menerapkan otoritas delegasi ke sumber daya tertentu di domain, SPN untuk instans SQL Server.

    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')}
    
  • Dapatkan akun layanan Server Laporan Power BI dan atur untuk mengizinkan delegasi. Langkah ini tidak hanya memungkinkan delegasi Kerberos, tetapi delegasi S4U2proxy (untuk transisi protokol) pada akun. Dua cmdlet terakhir menerapkan otoritas delegasi ke sumber daya tertentu di domain, SPN untuk server SQL Server dan PBIRS.

    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')}
    

Server Laporan Power BI (PBIRS)

PBIRS harus diinstal dalam mode konfigurasi saja .

Segera setelah menginstal PBIRS, Anda harus mengonfigurasinya untuk mendukung autentikasi Kerberos. PBIRS secara default hanya mendukung autentikasi NTLM. Selama proses penginstalan, Anda perlu memperbarui salah satu file konfigurasi PBIRS sebelum menyelesaikan proses konfigurasi PBIRS, baik di UI, atau melalui baris perintah. Jika Anda menggunakan penginstalan PBIRS yang ada, Anda masih perlu melakukan pengeditan, dan layanan PBIRS harus dimulai ulang agar berlaku. File konfigurasi adalah rsreportserver.config. Ini berada di jalur tempat PBIRS diinstal. Misalnya, pada penginstalan default PBIRS, file berada di lokasi berikut:

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

File XML ini dapat diedit di editor teks apa pun. Ingatlah untuk membuat salinan file sebelum mengedit. Setelah Anda membuka file, cari AuthenticationTypes tag dalam dokumen XML, dan tambahkan RSWindowsNegotiate atribut dan RSWindowsKerberos di depan RSWindowsNTLM atribut . Contohnya:

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

Langkah ini diperlukan, karena SQL Server di Linux hanya mendukung autentikasi SQL dan Kerberos.

Catatan

Kita hanya perlu menyertakan RSWindowsKerberos atribut, tetapi menggunakan RSWindowsNegotiate sangat membantu jika menstandarkan file konfigurasi PBIRS di seluruh armada server yang mendukung campuran instans Windows dan Linux SQL Server yang diinginkan.

Konfigurasi antarmuka pengguna PBIRS

Setelah layanan PBIRS dimulai ulang setelah pengeditan file konfigurasi selesai, Anda dapat melanjutkan dengan opsi konfigurasi PBIRS yang tersisa seperti mengatur akun layanan berbasis domain dan menyambungkan ke SQL Server jarak jauh pada instans Linux.

Akun layanan PBIRS akan muncul dalam instans SQL Server dengan izin yang sesuai. Anda dapat memeriksa izin di SQL Server Management Studio (SSMS). Di Object Explorer, navigasikan ke Masuk Keamanan>, klik kanan pada CORPNET\pbirsservice akun, dan pilih Properti. Izin terlihat di halaman Pemetaan Pengguna.

Terakhir, kita dapat menambahkan reportuser sebagai login di SQL Server untuk tujuan pengujian. Dalam hal ini, kami mengambil tombol mudah dan menambahkan pengguna ke peran db_datareader dalam dua database pengguna: AdventureWorks dan AdventureWorksDW.

Setelah laporan disebarkan

Jika Anda perlu menyiapkan langganan laporan setelah laporan disebarkan, adalah praktik yang baik untuk mengonfigurasi kredensial yang disematkan di sumber data PBIRS. Semua opsi kredensial berfungsi dengan baik, kecuali untuk penggunaan kredensial yang disematkan yang dikonfigurasi dengan meniru pengguna yang melihat opsi laporan . Langkah ini gagal saat menggunakan kredensial Windows, karena keterbatasan dalam implementasi SQL Server di Linux yang membuat peniruan lebih sulit.