Administration d'une base de données du serveur de rapports

Mis à jour : 15 septembre 2007

Un déploiement de Reporting Services utilise deux bases de données relationnelles SQL Server pour le stockage interne. Par défaut, les bases de données ont pour nom respectif Reportserver et ReportServerTempdb. La base de données ReportServerTempdb est créée à l'aide de la base de données du serveur de rapports principale et sert à stocker les données temporaires, les informations de session et les rapports mis en mémoire cache.

Dans Reporting Services, les tâches d'administration de base de données consistent à sauvegarder et à restaurer les bases de données de serveur de rapports et à gérer les clés de chiffrement qui permettent de chiffrer et de déchiffrer les données confidentielles.

Pour administrer les bases de données de serveur de rapports, SQL Server met une série d'outils à votre disposition.

  • Pour sauvegarder ou restaurer la base de données du serveur de rapports, déplacer une base de données du serveur de rapports ou récupérer une base de données du serveur de rapports, vous pouvez utiliser SQL Server Management Studio, les commandes Transact-SQL ou les utilitaires d'invite de commandes de base de données. Pour obtenir des instructions, consultez Déplacement d'une base de données de serveur de rapports vers un autre ordinateur dans la documentation en ligne de SQL Server.
  • Pour copier le contenu d'une base de données dans une autre base de données du serveur de rapports, vous pouvez attacher une copie d'une base de données du serveur de rapports et l'utiliser avec une autre instance du serveur de rapports. Ou encore, vous pouvez créer et exécuter un script qui utilise des appels SOAP pour recréer le contenu du serveur de rapports dans une nouvelle base de données. Vous pouvez employer l'utilitaire rs pour exécuter le script.
  • Pour gérer les connexions entre le serveur de rapports et la base de données connexe et pour déterminer quelle base de données utilise une instance de serveur de rapports particulière, utilisez la page Installation de la base de données dans l'outil de configuration de Reporting Services. Pour plus d'informations sur la connexion du serveur de rapports à la base de données de serveur de rapports, consultez Configuration d'une connexion de base de données de serveur de rapports.
  • Pour rassembler des métriques sur l'activité et les performances du serveur de rapports, consultez Interrogation des données du journal d'exécution des rapports et création de rapports dans la documentation en ligne de SQL Server.

Autorisations de connexion et de base de données SQL Server

Les bases de données de serveur de rapports sont utilisées en interne par le serveur de rapports. Les connexions à une base de données sont opérées par le service Web Report Server et le service Windows Report Server.

Vous pouvez utiliser l'outil de configuration de Reporting Services pour spécifier la connexion. Vous pouvez utiliser les informations d'identification des comptes de service ou les informations d'identification d'un compte d'utilisateur de domaine, ou encore une connexion SQL Server. Le compte que vous choisissez pour la connexion doit disposer d'une connexion SQL Server et comporter les rôles Public et RSExecRole pour les bases de données du serveur de rapports.

La connexion et les autorisations sont créées automatiquement lorsque vous utilisez l'outil de configuration de Reporting Services pour configurer la connexion à la base de données, mettre à niveau la base de données du serveur de rapports ou exécuter des scripts équivalents sur l'instance SQL Server qui héberge la base de données.

Le rôle RSExecRole fournit les autorisations permettant d'accéder aux tables de base de données et d'exécuter des procédures stockées. Le rôle RSExecRole est créé dans les bases de données master et msdb au moment de créer la base de données du serveur de rapports. Introduit dans SQL Server 2005 Service Pack 1, RSExecRole est membre du rôle db_owner pour les bases de données du serveur de rapports. Les autres autorisations permettent au serveur de rapports de mettre à jour le schéma dans les versions ultérieures, ce qui simplifie le processus de mise à niveau.

Suppression de comptes non utilisés dans RSExecRole

Si vous configurez le service Web ou le service Windows Report Server pour qu'il s'exécute sous un compte différent, le nouveau compte sera ajouté automatiquement dans RSExecRole. Toutefois, tous les comptes qui ont été ajoutés précédemment et qui ne sont plus utilisés doivent être supprimés manuellement. Pour supprimer les comptes, utilisez Management Studio et procédez comme suit :

  1. Connectez-vous à l'instance du Moteur de base de données qui héberge la base de données du serveur de rapports.
  2. Développez le dossier Bases de données, le dossier ReportServer, le dossier Sécurité, Rôles, Rôles de base de données, puis double-cliquez sur RSExecRole.
  3. Sélectionnez le compte qui n'est plus utilisé.
  4. Cliquez sur Supprimer.

Conventions d'affectation des noms pour les bases de données du serveur de rapports

Lors de la création de la base de données primaire, le nom de la base de données doit respecter les règles spécifiées pour les Identificateurs. La base de données temporaire utilise toujours le même nom que la base de données du serveur de rapports principale mais avec le suffixe Tempdb. Vous ne pouvez pas choisir un autre nom pour la base de données temporaire.

Le changement de nom des bases de données de serveur de rapports n'est pas pris en charge car ces bases de données sont considérées comme des composants internes. Renommer des bases de données de serveur de rapports entraîne des erreurs. Si vous renommez la base de données primaire, un message d'erreur explique que les noms des bases de données ne sont plus synchronisés. Si vous renommez la base de données ReportServerTempdb, l'erreur interne suivante se produira lors de l'exécution de rapports :

« Une erreur interne s'est produite sur le serveur de rapports. Consultez le journal des erreurs pour plus d'informations. (rsInternalError)

Nom d'objet 'ReportServerTempDB.dbo.PersistedStream' non valide. »

Cette erreur se produit car le nom ReportServerTempdb est stocké en interne et utilisé par des procédures stockées pour effectuer des opérations internes. Renommer la base de données temporaire empêche le bon fonctionnement des procédures stockées.

À propos des versions de base de données

Dans Reporting Services, aucune information explicite n'est disponible sur la version des bases de données. Toutefois, comme les versions des bases de données sont toujours synchronisées avec les versions des produits, vous pouvez utiliser les informations de version d'un produit pour savoir quand la version de base de données a changé. Les informations de version d'un produit pour Reporting Services sont indiquées par le biais des informations de version de fichier qui apparaissent dans les fichiers journaux, dans les en-têtes de tous les appels SOAP et lorsque vous vous connectez à l'URL du serveur de rapports (par exemple, lorsque vous ouvrez un navigateur à l'adresse https://localhost/reportserver).

Activation de l'isolement de capture instantanée sur la base de données du serveur de rapports

Vous ne pouvez pas activer l'isolement de capture instantanée sur la base de données du serveur de rapports. Si elle est activée, le message d'erreur suivant s'affiche : « Le rapport sélectionné n'est pas prêt pour être affiché. Le rendu du rapport n'est pas terminé ou sa capture instantanée n'est pas disponible. »

Si vous n'avez pas activé l'isolement de capture instantanée délibérément, l'attribut a pu être défini par une autre application ou l'isolement de capture instantanée a peut-être été activé sur la base de données model ce qui conduit toutes les nouvelles bases de données à hériter du paramètre.

Pour désactiver l'isolement de capture instantanée sur la base de données du serveur de rapports, démarrez Management Studio, ouvrez une nouvelle fenêtre de requête, puis collez et exécutez le script suivant :

ALTER DATABASE ReportServer
SET ALLOW_SNAPSHOT_ISOLATION OFF
ALTER DATABASE ReportServerTempdb
SET ALLOW_SNAPSHOT_ISOLATION OFF
ALTER DATABASE ReportServer
SET READ_COMMITTED_SNAPSHOT OFF
ALTER DATABASE ReportServerTempDb
SET READ_COMMITTED_SNAPSHOT OFF

Voir aussi

Concepts

Création d'une base de données de serveur de rapports
Opérations de sauvegarde et de restauration pour une installation Reporting Services
Base de données de Report Server
Administration de Reporting Services
Conditions requises pour une base de données du serveur de rapports
Stockage des données chiffrées du serveur de rapports
Gestion des clés de chiffrement

Autres ressources

Déploiement de Reporting Services

Aide et Informations

Assistance sur SQL Server 2005

Historique des modifications

Version Historique

15 septembre 2007

Nouveau contenu :
  • Ajout d'informations sur l'activation de l'isolement de capture instantanée sur la base de données du serveur de rapports.

12 décembre 2006

Nouveau contenu :
  • Suppression de comptes non utilisés dans RSExecRole

14 avril 2006

Nouveau contenu :
  • Conventions d'affectation des noms et informations de version pour les bases de données du serveur de rapports