La petite astuce de la journée concerne le proactive caching (mise en cache proactive alias MOLAP automatique) sur un cube dont le service account ne dispose pas des droits sysadmin.
Pour faire court, les droits strictement nécessaires pour la connexion (niveau serveur) dans ce cas sont :
- DataReader sur la base concernée
- L’astuce : les droits en ALTER TRACE sur le serveur
Si les droits en ALTER TRACE ne sont pas valides, le cube plante complétement, avec le message d’erreur suivant :
Erreur OLE DB: erreur OLE DB ou ODBC: Vous n'avez pas l'autorisation d'exécuter "Sp_trace_create : 42000"
Voici l’article de 2006 de Darren Gosbell qui nous a sauvé la mise sur le sujet.
NB : La connexion dont on parle c’est celle du service account, c’est à dire le compte qui fait tourner le service « SQL Server Analysis Services (#Instance) » sur le serveur. Et pour que l’astuce s’applique il faut évidemment que la DS du cube soit configurée pour utiliser le service account…
PS : Si vous aussi vous galérez à trouver l’écran des permissions sur lequel déclarer les droits ALTER TRACE, on le trouve dans SSMS : Sécurité (du serveur) > Connexions > (click droit sur la connexion) > Propriétés > Éléments Sécurisables > Ajouter > Le serveur concerné > et là ça apparaît dans la fenêtre du bas…