Membuat RSExecRole
Reporting Services menggunakan peran database yang telah ditentukan sebelumnya yang disebut RSExecRole untuk memberikan izin server laporan ke database server laporan. Peran RSExecRole dibuat secara otomatis dengan database server laporan. Sebagai aturan, Anda tidak boleh memodifikasinya atau menetapkan pengguna lain ke peran tersebut. Namun, saat Anda memindahkan database server laporan ke Mesin Database SQL Server baru atau berbeda, Anda harus membuat ulang peran dalam database sistem Master dan MSDB.
Gunakan instruksi berikut untuk melakukan langkah-langkah berikut:
Buat dan provisikan RSExecRole di database sistem Master.
Buat dan provisikan RSExecRole dalam database sistem MSDB.
Catatan
Instruksi dalam topik ini ditujukan untuk pengguna yang tidak ingin menjalankan skrip atau menulis kode WMI untuk menyediakan database server laporan. Jika Anda mengelola penyebaran besar dan akan memindahkan database secara rutin, Anda harus menulis skrip untuk mengotomatiskan langkah-langkah ini. Untuk informasi selengkapnya, lihat Mengakses Penyedia WMI Reporting Services.
Sebelum memulai
Cadangkan kunci enkripsi sehingga Anda bisa memulihkannya setelah database dipindahkan. Langkah ini tidak secara langsung memengaruhi kemampuan Anda untuk membuat dan menyediakan RSExecRole, tetapi Anda harus memiliki cadangan kunci untuk memverifikasi pekerjaan Anda. Untuk informasi selengkapnya, lihat Mencadangkan dan Memulihkan Kunci Enkripsi Layanan Pelaporan.
Verifikasi bahwa Anda masuk sebagai akun pengguna yang memiliki izin sysadmin pada instans SQL Server.
Pastikan layanan SQL Server Agent diinstal dan berjalan pada instans instans Mesin Database yang Anda rencanakan untuk digunakan.
Lampirkan database ReportServerTempDB dan ReportServer. Anda tidak diharuskan melampirkan database untuk membuat peran aktual, tetapi harus dilampirkan sebelum Anda dapat menguji pekerjaan Anda.
Instruksi untuk membuat RSExecRole secara manual dimaksudkan untuk digunakan dalam konteks migrasi penginstalan server laporan. Tugas penting seperti mencadangkan dan memindahkan database server laporan tidak dibahas dalam artikel ini, tetapi didokumenkan dalam dokumentasi Mesin Database.
Membuat RSExecRole di master
Reporting Services menggunakan prosedur tersimpan yang diperluas untuk layanan SQL Server Agent untuk mendukung operasi terjadwal. Langkah-langkah berikut menjelaskan cara memberikan izin Execute untuk prosedur ke peran RSExecRole .
Membuat RSExecRole di database sistem master dengan menggunakan Management Studio
Mulai SQL Server Management Studio dan sambungkan ke instans Mesin Database yang menghosting database server laporan.
Buka Database.
Buka Database Sistem.
Buka Master.
Buka Keamanan.
Buka Peran.
Klik kanan Peran Database, dan pilih Peran Database Baru. Halaman Peran Database - Baru muncul.
Di Nama peran, masukkan RSExecRole.
Di Pemilik, masukkan dbo.
Pilih halaman Securables.
Pilih Cari. Kotak dialog Tambahkan Objek muncul. Opsi Objek Tertentu dipilih secara default.
Pilih OK. Kotak dialog Pilih Objek muncul.
Pilih Jenis Objek.
Pilih Prosedur Tersimpan yang Diperluas.
Pilih OK.
Pilih Telusur.
Gulir ke bawah daftar dan pilih prosedur berikut:
xp_sqlagent_enum_jobs
xp_sqlagent_is_starting
xp_sqlagent_notify
Pilih OK, dan pilih OK lagi.
Di baris Jalankan, di kolom Grant, pilih kotak centang.
Ulangi untuk setiap prosedur tersimpan yang tersisa. RSExecRole harus diberikan izin Jalankan untuk ketiga prosedur tersimpan.
Pilih OK untuk menyelesaikan.
Membuat RSExecRole di MSDB
Reporting Services menggunakan prosedur tersimpan untuk layanan SQL Server Agent dan mengambil informasi pekerjaan dari tabel sistem untuk mendukung operasi terjadwal. Langkah-langkah berikut menjelaskan cara memberikan izin Jalankan untuk prosedur dan Pilih izin pada tabel ke RSExecRole.
Membuat RSExecRole di database sistem MSDB
Ulangi langkah serupa untuk memberikan izin ke prosedur dan tabel tersimpan di MSDB. Untuk menyederhanakan langkah-langkahnya, Anda memprovisikan prosedur dan tabel tersimpan secara terpisah.
Buka MSDB.
Buka Keamanan.
Buka Peran.
Klik kanan Peran Database, dan pilih Peran Database Baru. Halaman Umum muncul.
Di Nama peran, masukkan RSExecRole.
Di Pemilik, masukkan dbo.
Pilih halaman Securables .
Pilih Cari. Kotak dialog Tambahkan Objek muncul. Opsi Tentukan Objek dipilih secara default.
Pilih OK.
Pilih Jenis Objek.
Pilih Prosedur Tersimpan.
Pilih OK.
Pilih Telusur.
Gulir ke bawah daftar item dan pilih prosedur tersimpan berikut:
sp_add_category
sp_add_job
sp_add_jobschedule
sp_add_jobserver
sp_add_jobstep
sp_delete_job
sp_help_category
sp_help_job
sp_help_jobschedule
sp_verify_job_identifiers
Pilih OK, lalu pilih OK lagi.
Pilih prosedur tersimpan pertama: sp_add_category.
Di baris Jalankan, di kolom Grant, pilih kotak centang.
Ulangi untuk setiap prosedur tersimpan yang tersisa. RSExecRole harus diberikan izin Jalankan untuk semua 10 prosedur tersimpan.
Masih di halaman Amankan , pilih Cari lagi. Kotak dialog Tambahkan Objek muncul. Opsi Tentukan Objek dipilih secara default.
Pilih OK.
Pilih Jenis Objek.
Pilih Tabel.
Pilih OK.
Pilih Telusur.
Gulir ke bawah daftar item dan pilih tabel berikut:
syscategories
sysjobs
Pilih OK, dan pilih OK lagi.
Pilih tabel pertama: syscategories.
Di baris Pilih, di kolom Beri, pilih kotak centang.
Ulangi untuk tabel sysjobs. RSExecRole harus diberikan izin Pilih untuk kedua tabel.
Pilih OK untuk menyelesaikan.
Memindahkan database server laporan
Setelah membuat peran, Anda dapat memindahkan database server laporan ke instans SQL Server baru. Untuk informasi selengkapnya, lihat Memindahkan database server laporan ke komputer lain.
Jika Anda memutakhirkan Mesin Database ke SQL Server 2016 atau yang lebih baru, Anda dapat meningkatkannya baik sebelum atau sesudah memindahkan database.
Database server laporan dimutakhirkan secara otomatis ketika server laporan tersambung ke database tersebut. Tidak ada langkah khusus yang diperlukan untuk memutakhirkan database.
Memulihkan kunci enkripsi dan memverifikasi pekerjaan Anda
Jika Anda melampirkan database server laporan, Anda sekarang dapat menyelesaikan langkah-langkah berikut untuk memverifikasi pekerjaan Anda.
Memverifikasi pengoperasian server laporan setelah pemindahan database
Mulai alat Konfigurasi Reporting Services dan sambungkan ke server laporan.
Pilih Database.
Pilih Ubah Database.
Pilih Pilih database server laporan yang sudah ada.
Masukkan nama server Mesin Database. Jika Anda melampirkan database server laporan ke instans bernama, Anda harus memasukkan nama instans dalam format ini: <servername>\<instancename>.
Pilih Uji koneksi. Anda akan melihat kotak dialog yang menyatakan, "Uji Koneksi Berhasil."
Pilih Ok untuk menutup kotak dialog lalu pilih Berikutnya.
Pada Database, pilih database server laporan.
Pilih Berikutnya dan selesaikan wizard.
Pilih Kunci Enkripsi.
Pilih Pulihkan.
Pilih file kuat (.snk) yang memiliki salinan cadangan kunci konten yang digunakan untuk mendekripsi informasi masuk dan koneksi yang disimpan dalam database server laporan.
Masukkan kata sandi dan pilih OK.
Pilih URL Portal Web.
Pilih tautan untuk membuka portal web. Anda akan melihat item server laporan dari database server laporan.
Membuat peran dan izin RSExecRole dengan menggunakan T-SQL
Peran juga dapat dibuat, dan izin yang berlaku diberikan, pada database sistem dengan menggunakan skrip T-SQL berikut:
USE master;
GO
IF NOT EXISTS (SELECT 1 FROM sys.database_principals WHERE [type] = 'R' AND [name] = 'RSExecRole') BEGIN
CREATE ROLE [RSExecRole];
END
GRANT EXECUTE ON dbo.xp_sqlagent_enum_jobs TO [RSExecRole];
GRANT EXECUTE ON dbo.xp_sqlagent_is_starting TO [RSExecRole];
GRANT EXECUTE ON dbo.xp_sqlagent_notify TO [RSExecRole];
GO
USE msdb;
GO
IF NOT EXISTS (SELECT 1 FROM sys.database_principals WHERE [type] = 'R' AND [name] = 'RSExecRole') BEGIN
CREATE ROLE [RSExecRole];
END
GRANT EXECUTE ON dbo.sp_add_category TO [RSExecRole];
GRANT EXECUTE ON dbo.sp_add_job TO [RSExecRole];
GRANT EXECUTE ON dbo.sp_add_jobschedule TO [RSExecRole];
GRANT EXECUTE ON dbo.sp_add_jobserver TO [RSExecRole];
GRANT EXECUTE ON dbo.sp_add_jobstep TO [RSExecRole];
GRANT EXECUTE ON dbo.sp_delete_job TO [RSExecRole];
GRANT EXECUTE ON dbo.sp_help_category TO [RSExecRole];
GRANT EXECUTE ON dbo.sp_help_job TO [RSExecRole];
GRANT EXECUTE ON dbo.sp_help_jobschedule TO [RSExecRole];
GRANT EXECUTE ON dbo.sp_verify_job_identifiers TO [RSExecRole];
GRANT SELECT ON dbo.syscategories TO [RSExecRole];
GRANT SELECT ON dbo.sysjobs TO [RSExecRole];
GO