Un appel à la fonction AuthzInitializeContextFromSid API échoue lors de la remise d'un abonnement de messagerie dans SQL Server Reporting Services

IMPORTANT : Cet article est issu d'une traduction automatique réalisée par un logiciel Microsoft et non par un traducteur professionnel. Cette traduction automatique a pu aussi être révisée par la communauté Microsoft grâce à la technologie Community Translation Framework (CTF). Pour en savoir plus sur cette technologie, veuillez consulter la page http://support.microsoft.com/gp/machine-translation-corrections/fr. Microsoft vous propose en effet des articles traduits par des professionnels, des articles issus de traductions automatiques et des articles issus de traductions automatiques révisées par la communauté Microsoft, de manière à ce que vous ayez accès à tous les articles de notre Base de connaissances dans votre langue. Il est important de noter que les articles issus de la traduction automatique, y compris ceux révisés par la communauté Microsoft, peuvent contenir des erreurs de vocabulaire, de syntaxe ou de grammaire. Microsoft ne pourra être tenu responsable des imprécisions, erreurs, ainsi que de tout dommage résultant d’une traduction incorrecte du contenu ou de son utilisation par les clients.

La version anglaise de cet article est la suivante: 842423
Résumé
Cet article décrit les causes et certaines solutions possibles à un problème qui peut se produire dans Microsoft SQL Server 2000 Reporting Services, dans Microsoft SQL Server 2005 Reporting Services, ou dans Microsoft SQL Server 2008 Reporting Services lorsque vous essayez de créer et de processus d'un abonnement de messagerie en utilisant un compte d'utilisateur de domaine. Le problème se produit lorsqu'un appel de fonction AuthzInitializeContextFromSid API dans le fichier Authz.dll n'aboutit pas.

Remarque : Ce problème ne se produit pas dans Windows Server 2008.

Les résolutions qui sont abordées dans cet article sont les suivantes :
  • Comment faire pour configurer le service Reporting Services Windows pour s'exécuter sous un compte d'utilisateur de domaine. Si cela ne résout pas le problème, vous devez également utiliser une des méthodes suivantes :
    • Accorder l'autorisation de lecture pour le compte d'utilisateur de domaine sur tous les comptes d'utilisateur et de tout le groupe du domaine.
    • Accorder l'autorisation de lecture pour le compte d'utilisateur de domaine spécifiquement à l'un compte d'utilisateur ou sur un groupe dont l'utilisateur est membre.
INTRODUCTION
Cet article décrit un problème qui est associé à l'appel de fonction AuthzInitializeContextFromSid API qui se produit lors de la remise d'un abonnement de messagerie. Cet article décrit également certaines résolutions possibles au problème.
Plus d'informations
Lors de la remise d'un message électronique pour un abonnement de messagerie, le programme de Reporting Services peut appeler la fonction AuthzInitializeContextFromSid API qui est définie dans le fichier Authz.dll. Le programme de Reporting Services peut appeler la fonction AuthzInitializeContextFromSid API si une des conditions suivantes est remplie :
  • Un rapport est incorporé dans le message électronique.
  • Un rapport est joint au message électronique.
Si vous créez et processus de l'abonnement de messagerie à l'aide d'un compte d'utilisateur de domaine qui est différent du compte d'ouverture de session de service du service Reporting Services Windows, l'appel de la fonction AuthzInitializeContextFromSid API peut échouer.

En cas d'échec de l'appel de fonction, vous devrez peut-être configurer les paramètres sur le domaine de l'ordinateur qui exécute Reporting Services pour résoudre le problème.

Le programme de Reporting Services appelle la fonction AuthzInitializeContextFromSid API pour vérifier si le compte d'utilisateur qui a été utilisé pour créer l'abonnement dispose toujours des autorisations appropriées pour afficher le rapport. Cette vérification n'est pas nécessaire lorsque le message électronique contient uniquement un lien, une URL, à l'état parce que Reporting Services effectue la vérification des autorisations de l'utilisateur lorsque l'utilisateur tente d'accéder à l'état à l'aide de l'URL.

L'appel de la fonction AuthzInitializeContextFromSid API lit l'attribut tokenGroupsGlobalAndUniversal (TGGAU) du numéro d'identification de sécurité (SID) qui est spécifié dans l'appel de la fonction AuthzInitializeContextFromSid API pour déterminer les informations d'appartenance aux groupes Windows de l'utilisateur actuel. Reporting Services appelle l'API AuthzInitializeContextFromSid la fonction en utilisant le contexte de sécurité du compte d'ouverture de session du service du service Reporting Services Windows. Par conséquent, le compte d'utilisateur que vous utilisez pour exécuter le service Reporting Services Windows doit avoir des autorisations suffisantes pour lire l'attribut TGGAU sur le compte d'utilisateur qui est utilisé pour créer et traiter les abonnements de messagerie électronique.

Si l'ordinateur n'est pas configuré correctement pour accéder à et à l'exécution de l'appel de la fonction AuthzInitializeContextFromSid API dans le fichier Authz.dll, vous pouvez recevoir un message d'erreur. En outre, un message d'erreur peut être écrit dans le fichier journal de Reporting Services. Pour déterminer quel erreur s'est produite, procédez comme suit :
  1. Ouvrez la ReportServerService_Horodatagefichier .log. Rechercher le mot « authz ».

    Remarque Par défaut, le ReportServerService_Horodatagele fichier .log qui se trouve dans le Lecteur d'installation: \Program Files\Microsoft SQL Server\InstanceOfSQLServerDossier de \Reporting Services\Logfiles.

    Dans la ReportServerService_Horodatagele fichier .log, vous pouvez remarquer des messages d'erreur semblables au suivant :

    Message d'erreur 1
    ReportingServicesService! bibliothèque! 718! 06/16/2004-00: 00:03:: e erreur : lever le Microsoft.ReportingServices.Diagnostics.Utilities.ServerConfigurationErrorException : le serveur de rapports a rencontré une erreur de configuration ; plus de détails dans les fichiers journaux, AuthzInitializeContextFromSid : erreur Win32: 5 ; raison du possible - compte de service ne dispose pas des droits à l'utilisateur de domaine SID. ; Info : Microsoft.ReportingServices.Diagnostics.Utilities.ServerConfigurationErrorException : le serveur de rapports a rencontré une erreur de configuration ; plus de détails dans les fichiers journaux.
    Message d'erreur 2
    ReportingServicesService! bibliothèque! 7e4! 05/24/2004-10: 00:22:: e erreur : lever le Microsoft.ReportingServices.Diagnostics.Utilities.ServerConfigurationErrorException : le serveur de rapports a rencontré une erreur de configuration ; plus de détails dans les fichiers journaux, AuthzInitializeContextFromSid : erreur Win32 : 1722 ; Info : Microsoft.ReportingServices.Diagnostics.Utilities.ServerConfigurationErrorException : le serveur de rapports a rencontré une erreur de configuration ; plus de détails dans les fichiers journaux.
  2. Modifier l'abonnement de messagerie qui a provoqué le message d'erreur. Ne pas incorporer ou joindre un rapport dans le message électronique. Utiliser un lien vers ce rapport. Après avoir traité l'abonnement modifié, si vous ne recevez pas un message d'erreur, vous pouvez confirmer que l'erreur s'est produite parce que l'appel de la fonction AuthzInitializeContextFromSid API a échoué.
Pour résoudre ce problème, appliquez l'une des méthodes suivantes.

Vous pouvez utiliser la méthode 1 si les conditions suivantes sont remplies :
  • Le service Reporting Services Windows s'exécute sous le compte Service réseau.
  • Vous ne souhaitez pas modifier le compte qui exécute le service Reporting Services Windows sous.
Vous pouvez utiliser la méthode 2 pour une résolution générale. Si la méthode 2 ne résout pas le problème, appliquez la méthode 3.

Méthode 1

  1. Ajouter le compte Windows au groupe antérieur à Windows 2000 Compatibility Access à l'aide d'utilisateurs et ordinateurs d'un composant logiciel enfichable.
  2. Ajouter le compte Windows au groupe d'accès d'autorisation Windows à l'aide d'utilisateurs et ordinateurs d'un composant logiciel enfichable.
  3. Redémarrez l'ordinateur qui exécute Reporting Services.
Remarque
  • Le compte Windows à l'étape 1 et à l'étape 2 est le compte que vous utilisez pour exécuter les Services de création de rapports.
  • Après avoir ajouté le compte à ces groupes, il est garanti que Reporting Services peut accéder à l'attribut TGGAU.
  • Cette méthode ne nécessite pas de modification des autorisations sur n'importe quel utilisateur ou un groupe.

Méthode 2

Configurer le service Reporting Services Windows pour s'exécuter sous un compte d'utilisateur de domaine.

Remarque Lorsque vous essayez de modifier le compte d'utilisateur qui est utilisé pour exécuter le service Reporting Services Windows, un message d'erreur peut être écrit dans le journal de suivi de Reporting Services.

Pour plus d'informations sur le message d'erreur, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
842421 Vous recevez un message d'erreur dans le journal de suivi de Reporting Services lorsque vous redémarrez le service de serveur de rapports une fois que vous modifiez le compte d'utilisateur qui est utilisé pour exécuter le service de serveur de rapports

Méthode 3

Configurer les paramètres sur le domaine de l'ordinateur qui exécute Reporting Services. Pour ce faire, utilisez une des méthodes suivantes.

Accorder l'autorisation de lecture sur tous les comptes d'utilisateur et sur tous les groupes dans le domaine

Vous serez peut-être en mesure de résoudre le problème en accordant des autorisations de lecture pour le compte d'utilisateur que vous utilisez pour exécuter le service Reporting Services Windows pour lire l'attribut TGGAU sur tous les comptes d'utilisateurs et de tous les groupes dans le domaine. Pour ce faire, utilisez les informations d'une des sections suivantes, selon le système d'exploitation que vous utilisez.
Pour un domaine Microsoft Windows 2000
Si le domaine est dans un mode d'accès compatibilité antérieur à Windows 2000, le groupe tout le monde lecture sur l'attribut TGGAU pour tous les comptes utilisateur et tous les groupes. Par conséquent, le compte d'utilisateur que vous utilisez pour exécuter le service Reporting Services Windows a accès à l'attribut TGGAU sur le compte d'utilisateur que Reporting Services utilise pour créer l'abonnement de messagerie.

Si le domaine n'est pas dans un mode d'accès compatibilité antérieur à Windows 2000, également connu sous le nom natif, vous devez accorder une autorisation en lecture du compte d'utilisateur qui est utilisé pour exécuter le service Reporting Services Windows afin qu'il peut lire l'attribut TGGAU sur le compte d'utilisateur que Reporting Services utilise pour créer l'abonnement. Vous pouvez créer un groupe local de domaine qui simule le groupe de compatibilité antérieur à Windows 2000, ajoutez le compte d'utilisateur que vous utilisez pour exécuter le service Reporting Services Windows à ce groupe et ensuite accorder des autorisations de lecture pour le groupe tous les comptes d'utilisateurs. Pour ce faire, procédez comme suit :
Remarque Vous devez disposer des autorisations d'administrateur sur le domaine, procédez comme suit.
  1. Cliquez sur Démarrer, pointez sur programmes, pointez sur Outils d'administration, puis cliquez sur ordinateurs et utilisateurs Active Directory.
  2. Dans la fenêtre Active Directory utilisateurs et ordinateurs , dans le volet gauche, développez le Nom_domaine.
  3. Cliquez sur utilisateurs, pointez sur Nouveau, puis cliquez sur groupe.
  4. Dans la boîte de dialogue Nouvel objet - groupe , tapez MyAuthZGrp dans la zone nom du groupe .
  5. Sous étendue du groupe, sélectionnez l'option domaine local , puis cliquez sur OK. Le groupe MyAuthZGrp peut apparaître dans le volet de droite.
  6. Dans le volet gauche de la fenêtre Active Directory utilisateurs et ordinateurs , cliquez sur le dossier utilisateurs , puis cliquez sur Propriétés.
  7. Dans la boîte de dialogue Propriétés des utilisateurs , cliquez sur l'onglet sécurité .
  8. Cliquez sur Ajouter.
  9. Dans la boîte de dialogue Sélectionnez utilisateurs, ordinateurs ou groupes , sélectionnez le groupe que vous avez créé à l'étape 5.
  10. Cliquez sur Ajouter, puis cliquez sur OK.
  11. Accorder l'autorisation de lecture au compte d'utilisateur que vous avez sélectionné à l'étape 9.
Pour un domaine Microsoft Windows Server 2003
Si le domaine est à un niveau fonctionnel Windows 2000, le groupe tout le monde a autorisations de lecture à l'attribut TGGAU de tous les comptes d'utilisateurs et de groupes. Par conséquent, le compte de service Reporting Services dispose des autorisations appropriées au compte d'utilisateur qui a créé l'abonnement de messagerie.

Si le domaine est à un niveau fonctionnel de Windows Server 2003, le groupe d'accès d'autorisation Windows (groupe OUÂ) autorisations de lecture à l'attribut TGGAU de tous les comptes d'utilisateurs et de groupes. Par conséquent, si vous ajoutez le compte de service Reporting Services au groupe OUÂ, le compte de service Reporting Services a autorisations de lecture à l'attribut TGGAU des comptes d'utilisateurs qui peuvent créer des abonnements de messagerie électronique.

Pour ajouter le compte de service Reporting Services au groupe OUÂ, procédez comme suit :
  1. Sur le contrôleur de domaine, cliquez sur Démarrer, pointez sur programmes, pointez sur Outils d'administration, puis cliquez sur ordinateurs et utilisateurs Active Directory.
  2. Dans la fenêtre Active Directory utilisateurs et ordinateurs, développez Nom_domaine, puis cliquez sur utilisateurs ou une autre unité d'organisation appropriée (unité d'organisation).
  3. Double-cliquez sur le compte de service de Reporting Services.
  4. Dans la boîte de dialogue Propriétés , cliquez sur l'onglet Membre de .
  5. Sous l'onglet Membre de , cliquez sur Ajouter.
  6. Dans la boîte de dialogue Sélectionnez groupes , tapez Groupe d'accès d'autorisation Windows dans la zone Entrez les noms des objets à sélectionner, puis cliquez sur OK.
  7. Redémarrez le service de Reporting Services.

Accorder des autorisations à un compte d'utilisateur spécifique ou le groupe que vous pouvez créer un abonnement de Reporting Services en lecture

Vous souhaiterez pas accorder des autorisations de lecture à l'attribut TGGAU de tous les comptes d'utilisateurs et de groupes. Au lieu de cela, il pouvez que vous souhaitez accorder des autorisations de lecture à l'attribut TGGAU d'un compte d'utilisateur spécifique ou un groupe.

Remarques
  • Le compte d'utilisateur que Reporting Services utilise pour exécuter l'abonnement est le compte d'utilisateur Windows qui se connecte au Gestionnaire de rapports lors de la création de l'abonnement.
  • Ces étapes ne sont pas requis si le compte de service Reporting Services se trouve dans le groupe OUÂ.
  • Vous devez suivre ces étapes pour chaque compte d'utilisateur ou un groupe capable de créer un abonnement de messagerie dans Reporting Services.
Pour accorder des autorisations de lecture à l'attribut TGGAU d'un compte d'utilisateur spécifique ou un groupe, procédez comme suit :
  1. Sur un contrôleur de domaine, cliquez sur Démarrer, pointez sur programmes, pointez sur Outils d'administration, puis cliquez sur ordinateurs et utilisateurs Active Directory.
  2. Dans le menu affichage , assurez-vous que l'élément de fonctionnalités avancées est sélectionnée.
  3. Double-cliquez sur le compte d'utilisateur ou le groupe que vous pouvez créer un abonnement de Reporting Services.
  4. Dans la boîte de dialogue Propriétés , cliquez sur l'onglet sécurité .
  5. Sous l'onglet sécurité , cliquez sur Ajouter.
  6. Dans la boîte de dialogue Sélectionnez utilisateurs, ordinateurs ou groupes , entrez le compte de service Reporting Services dans la zone Entrez les noms des objets à sélectionner, puis cliquez sur OK.
  7. Dans la boîte de dialogue Propriétés , cliquez sur le compte d'utilisateur que vous avez ajouté à l'étape 6 sous noms d'utilisateur ou de groupe.
  8. Sous autorisations pour<b00> </b00> Utilisateur, activez la case à cocher Autoriser en regard de l'autorisation de lecture , puis cliquez sur OK.
Remarque Les modifications ne prendront effet immédiatement.
Plus d'informations

Comment faire pour configurer les paramètres de domaine de l'ordinateur

Le mode d'opération du domaine Microsoft Windows dépend de la configuration du domaine. En outre, vous devez activer les fonctionnalités avancées dans le domaine Windows. Pour rechercher le mode d'opération du domaine sur le contrôleur de domaine et pour activer les fonctionnalités avancées, procédez comme suit :
  1. Cliquez sur Démarrer, pointez sur programmes, pointez sur Outils d'administration, puis cliquez sur ordinateurs et utilisateurs Active Directory.
  2. Dans la fenêtre Active Directory utilisateurs et ordinateurs , dans le volet gauche, cliquez sur le Nom_domaine, puis cliquez sur Propriétés.
  3. Dans leNom_domaine Boîte de dialogue Propriétés zone, consultez la zone de texte du mode d'opération du domaine sous l'onglet Général .

    La <b00> </b00>mode d'opération du domaine zone de texte affiche le mode opératoire du domaine du domaine actuellement utilisé.
  4. Dans le volet gauche de la fenêtre Active Directory utilisateurs et ordinateurs , cliquez sur le Nom_domaine.
  5. Dans le menu affichage , cliquez sur Fonctionnalités avancées.
Pour plus d'informations sur les API qui requièrent l'accès à l'autorisation sur des comptes d'utilisateurs, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
331951 Certaines applications et l'API ont besoin d'accéder à des informations d'autorisation sur les objets de compte
Authentifier les SRS AD

Avertissement : Cet article a été traduit automatiquement.

Propriétés

ID d'article : 842423 - Dernière mise à jour : 08/16/2015 22:47:00 - Révision : 5.0

Microsoft SQL Server 2000 Reporting Services, Microsoft SQL Server 2005 Reporting Services, Microsoft SQL Server 2008 Reporting Services

  • kbdll kbdomain kbserver kbreport kbauthentication kbuser kbhowto kbinfo kbmt KB842423 KbMtfr
Commentaires