Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Reporting Services gebruikt een vooraf gedefinieerde databaserol genaamd RSExecRole om rapportageserverrechten te verlenen aan de rapportserverdatabase. De RSExecRole-rol wordt automatisch aangemaakt met de rapportagedatabase. In de regel mag je het nooit aanpassen of andere gebruikers aan de rol toewijzen. Wanneer je echter een rapportserverdatabase verplaatst naar een nieuwe of andere SQL Server Database Engine, moet je de rol opnieuw aanmaken in de Master- en MSDB-systeemdatabases.
Gebruik de volgende instructies om de volgende stappen uit te voeren:
Maak de RSExecRole aan en provisioneer deze in de Master-systeemdatabase.
Maak de RSExecRole aan en provisioneer deze in de MSDB-systeemdatabase.
Note
De instructies in dit onderwerp zijn bedoeld voor gebruikers die geen script willen draaien of WMI-code willen schrijven om de rapportageserverdatabase te provisioneren. Als je een grote deployment beheert en routinematig databases gaat verplaatsen, moet je een script schrijven om deze stappen te automatiseren. Zie Toegang tot de WMI-provider van Reporting Services voor meer informatie.
Voordat u begint
Maak een back-up van de encryptiesleutels zodat je ze kunt herstellen nadat de database is verplaatst. Deze stap beïnvloedt niet direct je mogelijkheid om de RSExecRole aan te maken en in te stellen, maar je moet wel een back-up van de sleutels hebben om je werk te verifiëren. Zie Back-up maken en herstellen van Reporting Services-versleutelingssleutels voor meer informatie.
Controleer of je bent ingelogd als een gebruikersaccount met systeembeheerdersrechten op de SQL Server-instantie.
Controleer of de SQL Server Agent-service is geïnstalleerd en draait op de instantie van de Database Engine-instantie die je wilt gebruiken.
Koppel de databases ReportServerTempDB en ReportServer. Je bent niet verplicht de databases te koppelen om de daadwerkelijke functie te creëren, maar ze moeten wel gekoppeld zijn voordat je je werk kunt testen.
De instructies voor het handmatig aanmaken van de RSExecRole zijn bedoeld om te worden gebruikt in de context van het migreren van een rapportageserverinstallatie. Belangrijke taken zoals het back-uppen en verplaatsen van de database van de rapportserver worden in dit artikel niet behandeld, maar wel gedocumenteerd in de Database Engine-documentatie.
Maak RSExecRole aan in master
Reporting Services gebruikt uitgebreide opgeslagen procedures voor de SQL Server Agent-service ter ondersteuning van geplande operaties. De volgende stappen leggen uit hoe je Execute-rechten voor de procedures kunt verlenen aan de rol RSExecRole .
Maak RSExecRole aan in de mastersysteemdatabase door gebruik te maken van Management Studio
Start SQL Server Management Studio en maak verbinding met de Database Engine-instantie die de rapportserverdatabase host.
Open Databases.
Open Systeemdatabases.
Open Master.
Open Beveiliging.
Open Rollen.
Klik met de rechtermuisknop op Databaserollen en selecteer Nieuwe databaserol. De pagina Databaserol - Nieuw wordt weergegeven.
Voer in RolnaamRSExecRole in.
Voer in Ownerdbo in.
Selecteer pagina Securables.
Selecteer Zoeken. Het dialoogvenster Objecten toevoegen verschijnt. De optie Specifieke Objecten is standaard geselecteerd.
Kies OK. Het dialoogvenster 'Objecten selecteren ' verschijnt.
Selecteer Objecttypen.
Selecteer Uitgebreide opgeslagen procedures.
Kies OK.
Selecteer Bladeren.
Scroll naar beneden in de lijst en selecteer de volgende procedures:
xp_sqlagent_enum_jobs
xp_sqlagent_is_starting
xp_sqlagent_notify
Selecteer OK en selecteer dan opnieuw OK .
Selecteer in de rij Uitvoeren, in de kolom Grant, het selectievakje.
Herhaal dit voor elk van de resterende opgeslagen procedures. RSExecRole moet Execute-rechten krijgen voor alle drie de opgeslagen procedures.
Selecteer OK om te voltooien.
Maak RSExecRole aan in MSDB
Reporting Services gebruikt opgeslagen procedures voor de SQL Server Agent-service en haalt taakinformatie op uit systeemtabellen om geplande operaties te ondersteunen. De volgende stappen leggen uit hoe je Execute-rechten voor de procedures en Select-permissies op de tabellen aan de RSExecRole kunt geven.
Maak RSExecRole aan in de MSDB-systeemdatabase
Herhaal vergelijkbare stappen voor het verlenen van rechten aan opgeslagen procedures en tabellen in MSDB. Om de stappen te vereenvoudigen, stel je de opgeslagen procedures en tabellen apart in.
Open MSDB.
Open Beveiliging.
Open Rollen.
Klik met de rechtermuisknop op Databaserollen en selecteer Nieuwe databaserol. De algemene pagina verschijnt.
Voer RSExecRole in in Rolnaam.
In Owner voer je dbo in.
Selecteer de pagina Securables.
Selecteer Zoeken. Het dialoogvenster Objecten toevoegen verschijnt. De optie Objecten specificeren is standaard geselecteerd.
Kies OK.
Selecteer Objecttypen.
Selecteer Opgeslagen procedures.
Kies OK.
Selecteer Bladeren.
Scroll naar beneden in de lijst met items en selecteer de volgende opgeslagen procedures:
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
Selecteer OK, en kies dan opnieuw OK .
Selecteer de eerste opgeslagen procedure: sp_add_category.
Selecteer in de Uitvoeren-rij in de kolom Grant het selectievakje.
Herhaal dit voor elk van de resterende opgeslagen procedures. RSExecRole moet uitvoeringsrechten krijgen voor alle 10 opgeslagen procedures.
Nog steeds op de Securables-pagina , selecteer opnieuw Zoeken . Het dialoogvenster Objecten toevoegen verschijnt. De optie Objecten specificeren is standaard geselecteerd.
Kies OK.
Selecteer Objecttypen.
Selecteer Tabellen.
Kies OK.
Selecteer Bladeren.
Scroll naar beneden in de lijst met items en selecteer de volgende tabellen:
Systeemcategorieën
sysjobs
Selecteer OK en selecteer dan opnieuw OK .
Selecteer de eerste tabel: syscategories.
Selecteer in de Select-rij in de kolom Subsidie het selectievakje.
Herhaal dit voor de sysjobs-tabel. RSExecRole moet Select-rechten krijgen voor beide tabellen.
Selecteer OK om te voltooien.
Verplaats de database van de rapportserver
Nadat je de rollen hebt aangemaakt, kun je de Report Server-database verplaatsen naar een nieuwe SQL Server-instantie. Voor meer informatie, zie Verplaatsen van de rapportserverdatabases naar een andere computer.
Als je de Database Engine upgradet naar SQL Server 2016 of later, kun je deze upgraden voor of na het verplaatsen van de database.
De database van de rapportserver wordt automatisch geüpgraded wanneer de rapportserver ermee verbinding maakt. Er zijn geen specifieke stappen nodig om de database te upgraden.
Herstel encryptiesleutels en controleer je werk
Als je de rapportserverdatabases hebt gekoppeld, zou je nu de volgende stappen moeten kunnen uitvoeren om je werk te controleren.
Controleer de werking van de rapportserver na een databaseverhuizing
Start de Reporting Services Configuration tool en maak verbinding met de rapportserver.
Selecteer Database.
Selecteer Database wijzigen.
Selecteer Een bestaande rapportserverdatabase kiezen.
Voer de servernaam van de Database Engine in. Als je de rapportserverdatabases aan een benoemde instantie hebt gekoppeld, moet je de instantienaam in dit formaat invoeren: <servernaam>\<instantienaam>.
Selecteer Verbinding testen. Je zou een dialoogvenster moeten zien met de tekst: "Test verbinding geslaagd."
Selecteer Oké om het dialoogvenster te sluiten en selecteer vervolgens Volgende.
Selecteer in de database de database van de rapportserver.
Selecteer Next en voltooi de wizard.
Selecteer encryptiesleutels.
Selecteer Terugzetten.
Selecteer het sterke bestand (.snk) dat de back-upkopie bevat van de symmetrische sleutel die wordt gebruikt om opgeslagen inloggegevens en verbindingsinformatie in de rapportserverdatabase te ontsleutelen.
Voer het wachtwoord in en kies OK.
Selecteer URL van het Webportaal.
Selecteer de link om het webportaal te openen. Je zou de report server-items uit de report server-database moeten zien.
Maak de RSExecRole-rol en de rechten aan met behulp van T-SQL
De rol kan ook worden aangemaakt en toepasselijke rechten worden verleend op de systeemdatabases door gebruik te maken van het volgende T-SQL-script:
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
Verwante onderwerpen
- Rapportserverdatabases verplaatsen naar een andere computer (systeemeigen SSRS-modus)
- Maak een Native Mode Report Server Database aan (Report Server Configuration Manager)
- Wat is Configuratiebeheer voor Report Server (systeemeigen modus)?
- Een back-up maken van SSRS-versleutelingssleutels (SQL Server Reporting Services) en deze herstellen
- Probeer het Reporting Services-forum te raadplegen