Configurer les comptes de service (Analysis Services)

S’applique à : SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium

L’approvisionnement de comptes à l’échelle du produit est documenté dans Configurer les autorisations et comptes de service Windows, une rubrique qui fournit des informations complètes sur les comptes de service pour tous les services SQL Server, y compris les SQL Server Analysis Services. Reportez-vous à cette rubrique pour en savoir plus sur les types de comptes valides, les privilèges Windows assignés par le programme d'installation, les autorisations du système de fichiers, les autorisations de Registre et bien plus encore.

Cette rubrique fournit des informations supplémentaires sur les SQL Server Analysis Services, notamment les autorisations supplémentaires nécessaires pour les installations tabulaires et en cluster. Elle traite également des autorisations nécessaires pour prendre en charge les opérations de serveur. Par exemple, vous pouvez configurer des opérations de traitement et de requête pour qu’elles s’exécutent sous le compte de service - dans ce scénario, des autorisations supplémentaires sont nécessaires.

Une autre étape de configuration, non documentée ici, consiste à inscrire un nom de principal de service (SPN) pour le SQL Server Analysis Services instance et le compte de service. Cette étape autorise l'authentification directe d'applications clientes auprès de sources de données principales dans les scénarios à deux tronçons. Cette étape s'applique uniquement aux services configurés pour la délégation Kerberos contrainte. Pour obtenir des instructions supplémentaires, consultez Configure Analysis Services for Kerberos constrained delegation .

Recommandations relatives aux comptes d'ouverture de session

Le compte de démarrage du service Windows MSSQLServerOLAPService peut être un compte d’utilisateur de domaine Windows, un compte virtuel, un compte de service managé (MSA) ou un compte intégré tel qu’un SID par service, NetworkService ou LocalSystem. L’utilisation d’un compte d’utilisateur de domaine en tant que compte d’ouverture de session de service fournit des détails sur les formats de compte d’utilisateur.

Dans un cluster de basculement, toutes les instances d'Analysis Services doivent être configurées pour utiliser un compte d'utilisateur de domaine Windows. Veuillez assigner le même compte à toutes les instances. Pour plus d'informations, consultez Procédure de mise en cluster d'Analysis Services .

Les instances autonomes doivent utiliser le compte virtuel par défaut, NT Service\MSSQLServerOLAPService pour l’instance par défaut, ou NT Service\MSOLAP$nom-instance pour une instance nommée. Cette recommandation s'applique aux instances d'Analysis Services dans tous les modes de serveur, en partant du principe que la version du système d'exploitation est Windows Server 2008 R2 et versions ultérieures, et que celle d'Analysis Services est SQL Server 2012 et versions ultérieures.

Accorder des autorisations à Analysis Services

Cette section explique les autorisations requises par Analysis Services pour les opérations internes locales. Ces opérations incluent le démarrage de l’exécutable, la lecture du fichier de configuration et le chargement de bases de données à partir du répertoire de données. Des conseils sur la définition d’autorisations pour l’accès aux données externes et l’interopérabilité avec d’autres services et applications sont disponibles dans Octroi d’autorisations supplémentaires pour des opérations de serveur spécifiques plus loin dans cette rubrique.

Pour les opérations internes, le détenteur de l’autorisation dans Analysis Services n’est pas le compte d’ouverture de session, mais un groupe de sécurité Windows local créé par le programme d’installation qui contient le SID par service. L'attribution des autorisations au groupe de sécurité est cohérente avec les versions antérieures d'Analysis Services. De même, les comptes d'ouverture de session peuvent varier avec le temps, mais le SID par service et le groupe de sécurité local ne changent pas à partir de leur installation sur le serveur. Pour Analysis Services, le groupe de sécurité est un meilleur choix pour conserver des autorisations que le compte d’ouverture de session. Si vous octroyez les droits à l'instance de service manuellement, qu'il s'agisse d'autorisations de système de fichiers ou de privilèges Windows, assurez-vous d'octroyer les autorisations au groupe de sécurité local créé pour l'instance de serveur.

Le nom du groupe de sécurité doit respecter un modèle précis. Son préfixe est toujours SQLServerMSASUser$, suivi par le nom de l'ordinateur, et se terminant par le nom de l'instance. L'instance par défaut est MSSQLSERVER. Un instance nommé est le nom donné lors de l’installation.

Vous pouvez consulter ce groupe de sécurité dans les paramètres de sécurité locale :

  • Exécuter compmgmt.msc | Utilisateurs et groupes | locauxGroupes | SQLServerMSASUser$<server-name>$MSSQLSERVER (pour un instance par défaut).

  • Pour afficher ses membres, double-cliquez sur le groupe de sécurité.

Le seul membre du groupe est le SID par service. Juste à côté se trouve le compte d'ouverture de session. Le nom de compte d'ouverture de session est symbolique, il permet de fournir du contexte au SID par service. Si vous modifiez le compte d’ouverture de session, le groupe de sécurité et le SID par service ne changent pas. Seule l’étiquette du compte d’ouverture de session est différente.

Privilèges Windows affectés au compte de service Analysis Services

Analysis Services a besoin d'autorisations du système d'exploitation pour le démarrage du service et pour demander des ressources système. Les exigences varient en fonction du mode serveur et selon qu'il s'agit ou non d'une instance en cluster.

Toutes les instances d’Analysis Services nécessitent le privilège Ouvrir une session en tant que service (SeServiceLogonRight). Le programme d'installation de SQL Server assigne automatiquement ce privilège sur le compte de service spécifié durant l'installation. Pour les serveurs qui s'exécutent en mode multidimensionnel et exploration de données, il s'agit du seul privilège Windows requis par le compte de service Analysis Services pour les installations serveur autonome et du seul privilège que le programme d'installation configure pour Analysis Services. Pour les instances tabulaires et en cluster, des privilèges Windows supplémentaires doivent être ajoutés manuellement.

Les instances de cluster de basculement, en mode tabulaire ou multidimensionnel, nécessitent le privilège Augmenter la priorité de planification (SeIncreaseBasePriorityPrivilege).

Les instances tabulaires utilisent les trois privilèges supplémentaires suivants, qui doivent être accordés manuellement une fois l'instance installée.

Privilège Description
Augmenter une plage de travail de processus (SeIncreaseWorkingSetPrivilege) Ce privilège est accessible par défaut à tous les utilisateurs par l'intermédiaire du groupe de sécurité Utilisateurs . Si vous verrouillez un serveur en supprimant des privilèges pour ce groupe, Analysis Services risque de ne pas démarrer, en journalisant cette erreur : « Un privilège requis n’est pas détenu par le client ». Lorsque cette erreur se produit, restaurez le privilège dans Analysis Services en l’accordant au groupe de sécurité Analysis Services approprié.
Ajuster les quotas de mémoire pour un processus (SeIncreaseQuotaPrivilege) Ce privilège sert à demander davantage de mémoire si un processus dispose de ressources insuffisantes pour terminer son exécution, avec comme limitation les seuils de mémoire établis pour l'instance.
Verrouiller les pages en mémoire (SeLockMemoryPrivilege) Ce privilège est nécessaire uniquement lorsque la pagination est complètement désactivée. Par défaut, une instance serveur tabulaire utilise le fichier de pagination Windows, mais vous pouvez l'empêcher d'utiliser la pagination Windows en affectant la valeur 0 au paramètre VertiPaqPagingPolicy .

SiVertiPaqPagingPolicy a la valeur 1 (valeur par défaut), l’instance serveur tabulaire utilise le fichier de pagination Windows. Les allocations ne sont pas verrouillées, ce qui permet à Windows de paginer selon les besoins. La pagination étant utilisée, nul besoin de verrouiller les pages en mémoire. Ainsi, pour la configuration par défaut (où VertiPaqPagingPolicy = 1), vous n’avez pas besoin d’accorder le privilège Verrouiller les pages en mémoire à une instance tabulaire.

VertiPaqPagingPolicy égal à 0. Si vous désactivez la pagination pour Analysis Services, les allocations sont verrouillées, ce qui implique que le privilège Verrouiller les pages en mémoire est accordé à l'instance tabulaire. Étant donné ce paramètre et le privilège Verrouiller les pages en mémoire , Windows ne peut pas paginer les allocations effectuées à Analysis Services lorsque le système est soumis à une sollicitation de la mémoire. Analysis Services compte sur l’autorisation Verrouiller les pages en mémoire pour mettre en œuvre VertiPaqPagingPolicy = 0. La désactivation de la pagination Windows n'est pas recommandée. Cela augmente le taux d'erreurs liées à l'insuffisance de mémoire pour les opérations qui réussiraient si la pagination était autorisée. Pour plus d'informations sur VertiPaqPagingPolicy , consultez Memory Properties.

Pour afficher ou ajouter des privilèges Windows sur le compte de service

  1. Exécutez GPEDIT.msc | Stratégie de l'ordinateur local | Configuration ordinateur | Paramètres Windows | Paramètres de sécurité | Stratégies locales | Attribution des droits utilisateur.

  2. Examinez les stratégies existantes qui contiennent SQLServerMSASUser$. Il s'agit d'un groupe de sécurité local présent sur les ordinateurs ayant une installation d'Analysis Services. Les privilèges Windows et les autorisations sur les dossiers de fichiers sont accordés à ce groupe de sécurité. Doublez-cliquez sur Ouvrir une session en tant que service pour voir de quelle façon le groupe de sécurité est spécifié sur votre système. Le nom complet du groupe de sécurité varie selon que vous avez installé Analysis Services comme instance nommée ou non. Utilisez ce groupe de sécurité plutôt que le compte de service lors de l'ajout des privilèges de compte.

  3. Pour ajouter des privilèges de compte dans GPEDIT, cliquez avec le bouton droit sur Augmenter une plage de travail de processus et sélectionnez Propriétés.

  4. Cliquez sur Ajouter un groupe ou un utilisateur.

  5. Entrez le groupe d'utilisateurs de l'instance d'Analysis Services. N'oubliez pas que le compte de service est membre d'un groupe de sécurité local, ce qui nécessite que vous ajoutiez le nom de l'ordinateur local comme domaine du compte.

    La liste suivante montre deux exemples pour une instance par défaut et une instance nommée « Tabular » sur un ordinateur « SQL01-WIN12 », où le nom de l'ordinateur est le domaine local.

    • SQL01-WIN12\SQL01-WIN12$SQLServerMSASUser$MSSQLSERVER

    • SQL01-WIN12\SQL01-WIN12$SQLServerMSASUser$TABULAR

  6. Répétez l'opération pour Ajuster les quotas de mémoire pour un processuset, éventuellement, pour Verrouiller les pages en mémoire ou Augmenter la priorité de planification.

Notes

Les versions antérieures du programme d'installation ajoutaient par inadvertance le compte de service Analysis Services au groupe Utilisateurs du journal des performances . Bien que ce problème ait été résolu, il est possible que des installations existantes présentent cette appartenance de groupe superflue. Étant donné que le compte de service SQL Server Analysis Services ne nécessite pas d’appartenance au groupe Utilisateurs du journal de performances, vous pouvez le supprimer du groupe.

Autorisations de système de fichiers affectées au compte de service Analysis Services

Notes

Consultez Configurer les comptes de service Windows et les autorisations pour obtenir la liste des autorisations associées à chaque dossier de programme.

Consultez Configurer l’accès HTTP à Analysis Services sur Internet Information Services (IIS) 8.0 pour obtenir des informations d’autorisation de fichier relatives à la configuration et à la SQL Server Analysis Services IIS.

Toutes les autorisations de système de fichiers requises pour les opérations serveur, y compris les autorisations nécessaires au chargement et au déchargement des bases de données à partir d’un dossier de données désigné, sont attribuées par le programme d’installation SQL Server lors de l’installation.

Le conteneur des autorisations sur les fichiers de données, les exécutables des fichiers programme, les fichiers de configuration, les fichiers journaux et les fichiers temporaires est un groupe de sécurité local créé par le programme d'installation de SQL Server.

Un groupe de sécurité est créé pour chaque instance que vous installez. Le groupe de sécurité est nommé d’après le instance – SQLServerMSASUser$MSSQLSERVER pour le instance par défaut, ou SQLServerMSASUser$<servername>$<nom_instance> pour un instance nommé. Le programme d'installation configure ce groupe de sécurité avec les autorisations de fichiers requises pour effectuer les opérations serveur. Si vous vérifiez les autorisations de sécurité dans le répertoire \MSAS13.MSSQLSERVER\OLAP\BIN, vous verrez que le groupe de sécurité (et non le compte de service ou son SID par service) est le détenteur des autorisations sur ce répertoire.

Le groupe de sécurité contient un seul membre : l’identificateur de sécurité (SID) par service du compte de démarrage SQL Server Analysis Services instance. Le programme d'installation ajoute le SID par service au groupe de sécurité local. L'utilisation d'un groupe de sécurité local, avec son appartenance au SID, est la différence entre la configuration d'Analysis Services par le programme d'installation de SQL Server et le moteur de base de données.

Si vous pensez que les autorisations de fichiers sont corrompues, suivez les étapes ci-après pour vérifier que le service est correctement configuré :

  1. Utilisez l'outil en ligne de commande Contrôle du service (sc.exe) pour obtenir le SID d'une instance de service par défaut.

    SC showsid MSSqlServerOlapService

    Pour une instance nommée (où le nom de l'instance est Tabular), utilisez la syntaxe suivante :

    SC showsid MSOlap$Tabular

  2. Utilisezles groupes utilisateurs et groupes | locauxdu Gestionnaire | d’ordinateurs pour inspecter l’appartenance au groupe de sécurité SQLServerMSASUser$<servername>$<nom_>instance.

    Le SID de membre doit correspondre au SID par service obtenu à l'étape 1.

  3. Utiliser Windows Explorer | Program Files | Microsoft SQL Server | MSASxx.MSSQLServer | OLAP | bin pour vérifier que les propriétés de sécurité du dossier sont accordées au groupe de sécurité à l’étape 2.

Notes

Ne supprimez ni ne modifiez jamais un SID. Pour restaurer un SID par service qui a été supprimé par inadvertance, consultez https://support.microsoft.com/kb/2620201.

En savoir plus sur les SID par service

Chaque compte Windows a un SIDassocié, mais les services peuvent également avoir un SID appelé « SID par service ». Un SID par service est créé lors de l'installation de l'instance du service, en tant que caractéristique fixe et unique du service. Le SID par service est un SID local au niveau de l'ordinateur, généré à partir du nom du service. Sur une instance par défaut, son nom convivial est NT SERVICE\MSSQLServerOLAPService.

Le SID par service offre l'avantage de permettre la modification arbitraire du compte d'ouverture de session (plus visible) sans affecter les autorisations de fichiers. Supposons, par exemple, que vous ayez installé deux instances d'Analysis Services, une instance par défaut et une instance nommée, les deux s'exécutant sous le même compte d'utilisateur Windows. Bien que le compte d'ouverture de session soit partagé, chaque instance de service a un SID par service unique. Ce SID est distinct du SID du compte d'ouverture de session. Le SID par service est utilisé pour les autorisations de fichiers et les privilèges Windows. Le SID de compte d'ouverture de session sert quant à lui aux scénarios d'authentification et d'autorisation. Il s'agit donc de SID différents utilisés à des fins différentes.

Le SID étant non modifiable, les listes de contrôle d'accès du système de fichiers créées durant l'installation du service peuvent être utilisées indéfiniment, quelle que soit la fréquence de modification du compte de service. Par mesure de sécurité supplémentaire, les listes de contrôle d'accès (ACL) qui spécifient des autorisations via un SID garantissent que les exécutables de programme et les dossiers de données ne sont accessibles que par une seule instance d'un service, même si d'autres services s'exécutent sous le même compte.

Octroi d'autorisations Analysis Services supplémentaires pour des opérations spécifiques

SQL Server Analysis Services exécute certaines tâches dans le contexte de sécurité du compte de service (ou compte d’ouverture de session) utilisé pour démarrer SQL Server Analysis Services et exécute d’autres tâches dans le contexte de sécurité de l’utilisateur qui demande la tâche.

Le tableau suivant décrit les autorisations supplémentaires nécessaires pour prendre en charge les tâches s'exécutant en tant que compte de service.

Opération du serveur Élément de travail Justification
Accès à distance aux sources de données relationnelles externes Créer un nom d'accès à la base de données pour le compte de service Le traitement fait référence à la récupération de données à partir d’une source de données externe (généralement une base de données relationnelle), qui est ensuite chargée dans une base de données SQL Server Analysis Services. L'une des options d'informations d'identification pour la récupération de données externes consiste à utiliser le compte de service. Cette option d'informations d'identification fonctionne uniquement si vous créez une connexion à une base de données pour le compte de service et octroyez des autorisations de lecture sur la base de données source. Pour plus d’informations sur l’utilisation de l’option de compte de service pour cette tâche, consultez Définir les options d’emprunt d’identité (SSAS - Multidimensionnel). De la même manière, si ROLAP est utilisé comme mode de stockage, les mêmes options d'emprunt d'identité sont disponibles. Dans ce cas, le compte doit également disposer d'un accès en écriture aux données sources pour pouvoir traiter les partitions ROLAP (c'est-à-dire pour stocker les agrégations).
DirectQuery Créer un nom d'accès à la base de données pour le compte de service DirectQuery est une fonctionnalité tabulaire utilisée pour interroger des datasets externes qui sont soit trop volumineux pour s'ajuster à l'intérieur du modèle tabulaire ou qui présentent d'autres caractéristiques qui font de DirectQuery un meilleur choix que l'option de stockage en mémoire par défaut. L'une des options de connexion disponibles en mode DirectQuery consiste à utiliser le compte de service. Là encore, cette option fonctionne uniquement lorsque le compte de service dispose d'une connexion à une base de données, ainsi que d'autorisations de lecture sur la source de données cible. Pour plus d’informations sur l’utilisation de l’option de compte de service pour cette tâche, consultez Définir les options d’emprunt d’identité (SSAS - Multidimensionnel). Les informations d'identification de l'utilisateur actuel peuvent également être utilisées pour récupérer des données. Dans la majorité des cas, cette option implique une connexion à deux tronçons. Par conséquent, veillez à configurer le compte de service pour la délégation Kerberos contrainte afin que ce compte de service puisse déléguer des identités à un serveur en aval. Pour plus d'informations, consultez Configure Analysis Services for Kerberos constrained delegation.
Accès à distance à d'autres instances SSAS Ajouter le compte de service aux rôles de base de données Analysis Services définis sur le serveur distant Les partitions distantes et le référencement d’objets liés sur d’autres instances de SQL Server Analysis Services distantes sont deux fonctionnalités système nécessitant des autorisations sur un ordinateur ou un appareil distant. Lorsqu'une personne crée et alimente des partitions distantes ou configure un objet lié, cette opération s'exécute dans le contexte de sécurité de l'utilisateur actuel. Si vous automatisez par la suite ces opérations, SQL Server Analysis Services accédera aux instances distantes dans le contexte de sécurité de son compte de service. Pour accéder aux objets liés sur un instance distant de SQL Server Analysis Services, le compte de connexion doit avoir l’autorisation de lire les objets appropriés sur le instance distant, par exemple l’accès en lecture à certaines dimensions. De même, l'utilisation de partitions distantes implique obligatoirement que le compte de service dispose de droits d'administration sur l'instance distante. De telles autorisations sont octroyées sur l'instance Analysis Services distante, au moyen de rôles qui associent les opérations autorisées à un objet spécifique. Consultez Accorder des autorisations de base de données (Analysis Services) pour obtenir des instructions sur la façon d’accorder des autorisations de contrôle total qui autorisent le traitement et les opérations de requête. Pour plus d’informations sur les partitions distantes, consultez Créer et gérer une partition distante (Analysis Services).
Écriture différée Ajouter le compte de service aux rôles de base de données Analysis Services définis sur le serveur distant Lorsqu'elle est activée dans les applications clientes, l'écriture différée est une fonctionnalité des modèles multidimensionnels qui permet la création de nouvelles valeurs de données au cours de l'analyse des données. Si la réécriture est activée dans n’importe quelle dimension ou cube, le compte de service SQL Server Analysis Services doit disposer d’autorisations d’écriture sur la table d’écriture différée dans la base de données relationnelle source SQL Server. Si cette table n’existe pas déjà et doit être créée, le compte de service SQL Server Analysis Services doit également disposer des autorisations de création de table dans la base de données SQL Server désignée.
Écrire dans une table de journal de requêtes dans une base de données relationnelle SQL Server Créer une connexion de base de données pour le compte de service et assigner des autorisations d'écriture sur la table du journal des requêtes Activez la journalisation des requêtes afin de recueillir des données d'utilisation dans une table de base de données, en vue d'une analyse ultérieure. Le compte de service SQL Server Analysis Services doit disposer d’autorisations d’écriture sur la table du journal des requêtes dans la base de données SQL Server désignée. Si cette table n’existe pas déjà et doit être créée, le compte d’ouverture de session SQL Server Analysis Services doit également disposer des autorisations de création de table dans la base de données SQL Server désignée. Pour plus d’informations, consultez le blog Improve SQL Server Analysis Services Performance with the Usage Based Optimization Wizard (Améliorer les performances de SQL Server Analysis Services à l’aide de l’Assistant Optimisation basée sur l’utilisation) et le blog Query Logging in Analysis Services(Journalisation des requêtes dans Analysis Services).

Configurer les comptes de service Windows et les autorisations
SQL Server Service Account and Per-Service SID (blog)
SQL Server utilise un SID de service pour assurer l'isolement du service (article de la Base de connaissances)
Jeton d'accès (MSDN)
Identificateurs de sécurité (MSDN)
Jeton d'accès (Wikipedia)
Listes de contrôle d'accès (Wikipedia)