Aucun message portant le libellé SQL Server. Afficher tous les messages
Aucun message portant le libellé SQL Server. Afficher tous les messages

D365 for Finance and Operations: The transaction log for database is full due to LOG_Backup.

Les utilisateurs d'un système D365 for Finance and Operations d’un environment Tier-2 recevait le message d’erreur suivant:

Sorry, we lost the connection temporarily. Please be patient while we reconnect you.



J’ai été voir dans le l’observateur d’évènement et j’ai trouver les messages d’erreur suivants:

The transaction log for database is full due to LOG_Backup.



J’étais un peu perplexe puisque c’est une base de données Azure SQL, mais j’ai tout de même fait une investigation. J'ai établi une connexion à la base de données Azure SQL et j’ai exécuté la requête suivante:

SELECT file_id, name, type_desc, physical_name, (size * 8) / 1024/1024 "Current Size in GB", (max_size * 8) / 1024/1024 "Maximum Size in GB"
FROM sys.database_files ;

On peut y voir qu’effectivement le fichier de log est rempli à pleine capacité.


La taille maximum du fichier de log = 45875200 KB = 367GB.
La taille maximum du fichier données = 134217728 KB = 1TB.

Ensuite, j’ai exécuté la requête suivante afin de connaitre le service tier de la base de données AxDB

SELECT  d.name,  slo.* 
FROM sys.databases
JOIN sys.database_service_objectives slo 
ON d.database_id = slo.database_id;


Je sais que la grosseur maximum de la base de données pour service tier P11 est de 4TB, donc il est clair que Microsoft a limité la grosseur à 1TB. De plus, 1TB est la grosseur limite de la base de données, aucune information sur la limite du fichier de log.

Je sais que la grosseur maximum de la base de données pour service tier P11 est de 4TB, donc il est clair que Microsoft a limité la grosseur à 1TB. De plus, 1TB est la grosseur limite de la base de données, aucune information sur la limite du fichier de log.


Dans ce cas-ci, j’ai décidé de réduire la taille du fichier de log plutôt que de demander à Microsoft d’augmenter la limite. J’ai utilisé la requête suivante.

dbcc SHRINKFILE(1,250000)

SQL Server: Memory (Private Working Set)

Dernièrement, un collègue de travail m’a demandé pourquoi Task Manager indiquait que 98% de la mémoire du serveur SQL était utilisé, mais que le  service MSSQLSERVER en utilisait seulement 1.4 Gb.


C’est un comportement normal lorsque le compte de service SQL possède les permissions Lock Pages in Memory puisque les "locked pages" en mémoire ne fait pas partie du du Memory Private Working Set.

Voici la différence avec une instance SQL dont le compte de service n’est pas configure avec les permissions Lock Pages in Memory.


Dans tous les cas, la meilleure façon de savoir la mémoire utilisée par SQL est via la DMV dm_os_process_memory.

SELECT
(physical_memory_in_use_kb/1024)Memory_usedby_Sqlserver_MB
FROM sys.dm_os_process_memory

Dynamics AX et SQL Resource Governor

Un de mes clients éprouvait des problèmes de performance avec leur serveur SQL. Après avoir utilisé le script de Glen Barry afin d'effectuer un diagnostique, il était évident que SQL souffrait de congestion au niveau de la mémoire et des disques. De plus, j’ai constaté que la majorité des ressources du serveur était utilisée par des  bases de données autre que MicrosoftDynamicsAX et MicrosoftDynamicsAX_model. Les instructions du client étaient claires: les bases de données de Microsoft Dynamics AX doivent avoir priorité sur les ressources.

Le client possède une architecture SQL AlwaysOn Availability groups avec 3 serveurs de réplication, dont un dans un leur site de recouvrement (DR). Les serveurs SQL sont hébergés sur la plateforme Azure dans un mode de déploiement Classic.  La taille des serveurs est déjà au maximum 8vCPU, 56GB et il est impossible pour le moment de migrer les serveurs dans le mode Azure Resource Manager (ARM). Impossible aussi pour l'instant de déplacer les autres bases de données.

C’est un excellent cas pour Resource Governor! C'est la première fois que j'utilisais Resource Governor parce que lors de toutes mes implantations précédentes, les clients ont décidé d'y aller avec une architecture SQL dédiée pour Dynamics AX.

Je ne vais pas entrer dans les détails de Resource Governor, mais en résumé c’est un outil qui permet de limiter la consommation de CPU, mémoire et IOPS. Bref, un outil parfait dans mon cas afin de limiter les ressources utilisées par les autres bases de données sur le serveur et laisser plus de performance pour Dynamics AX.

Tout d’abord, j’ai créé un nouveau Resource Pool nommé DynamicsAX. Mon intention est de rediriger toutes les sessions provenant des serveurs AOS vers ce Resource Pool. Je lui assigne un minimum de 50% du CPU et un minimum de 70% de la mémoire.  Prenez note que je ne peux pas assigner un minimum et maximum de IOPS via l’interface graphique, l'option est disponible seulement via T-SQL.

Ensuite, j’ai créé 3 différents workload groups. Un pour le serveur AOS qui dessert les utilisateurs, un pour le serveur AOS qui exécute les batch et un pour le serveur AOS qui dessert les utilisateurs Enterprise Portal.


Ensuite, j'ai créer un classifier. Le classifier permet de rediriger les sessions dans un workload group. Le workload group appartient à un Resource Pool. Dans ce cas-ci, j'ai décidé d'utiliser HOST_NAME() pour déterminer la source de la session en sachant que mes serveurs AOS se connectent à la base de données Dynamics AX uniquement via le service AOS. Il est aussi possible d’utiliser d’autre variable comme APP_NAME(), HOST_NAME(), ORIGINAL_DB_NAME(), etc.

CREATE FUNCTION dbo.DynamicsAXClassifier()
RETURNS SYSNAME
WITH SCHEMABINDING
AS
BEGIN
DECLARE @WorkloadGroup AS SYSNAME
IF(HOST_NAME() = 'AOSSERVERNAME_USERS')
SET @WorkloadGroup = 'AOS_Users'
ELSE IF (HOST_NAME() = 'AOSSERVERNAME_BATCH')
SET @WorkloadGroup = 'AOS_Batch'
ELSE IF (HOST_NAME() = 'AOSSERVERNAME_EP')
SET @WorkloadGroup = 'AOS_EP'
ELSE
SET @WorkloadGroup = 'default'
RETURN @WorkloadGroup
END
GO


Toutes les sessions qui ne proviennent pas des serveurs AOS iront dans le resource pool default. Celui -ci a un accès maximum de 100% du CPU et de la mémoire, mais étant donné que le Resource Pool DynamicsAX a une réservation de 70% (CPU) et 70% (mémoire), ceci veut dire que le nouveau maximum est 30% et 30%.

Je voulais ajouter des limitations supplémentaires au Resource Pool default. Dans mon cas, la configuration global de MAXDOP est 4. Mais, il est possible de limiter MAXPOP à 1 pour toute requête autre que Dynamics AX:


Pour finir, j’ai modifié la limite de IOPS a 1000 pour le Resource Pool default:

ALTER RESOURCE POOL [default] WITH(
                min_cpu_percent=0, 
max_cpu_percent=100, 
min_memory_percent=0, 
max_memory_percent=100, 
cap_cpu_percent=100, 
AFFINITY SCHEDULER = AUTO
min_iops_per_volume=0, 
max_iops_per_volume=1000)
GO

Après que le tout est en place, il faut redemarrer les service AOS afin d'initier de nouvelles sessions. Ensuite, j’utilise un rapport SRRS SQL Server Resource Governor Monitoring reports pour surveiller l’utilisation des ressources dans les Ressources Pools.

Finalement, vous avez surment remarqué qu’il y a plusieurs options dont je n’ai pas mentionné. Je suggère la lecture de Resource Governor sur simple-talk afin de connaitre tous les détails.

SQL Server: Method not found:'System.Collections.Specialized.StringCollection

Suite au déploiement d'un environnement de développement sur la plate-forme 11, je recevais le message d'erreur suivant lorsque je tentais d'aller dans les propriétés d'une base de données.

Cannot show requested dialog. (SqlMgmt)

Method not found:'System.Collections.Specialized.StringCollection
Microsoft.SqlServer.Management.Smo.Server.GetPropertyNames(System.Type)'
(SqlManagerUI)




Pour corriger le problème, j'ai mis à jour SQL Serveur Management Studio (SMSS) avec la version dernière version 16. X qui se trouve ici.

SQL Server Diagnostic Information

J'aime bien l'outil Dynamics AX Perf pour débuter le diagnostic d'un serveur SQL. Toutefois, il arrive que Dynamics Perf ne soit pas configuré pour un environnement en particulier. Dans ce cas, je suggère d'utiliser SQL Serveur diagnostic Queries de Glen Berry. Vous pouvez télécharger le script à cette adresse: http://www.sqlskills.com/blogs/glenn/

DMV Queries: https://www.sqlskills.com/blogs/glenn/category/dmv-queries/

Dynamics AX : Read Committed Snapshot Isolation (RCSI)

J'ai fait face à des problèmes du verrouillage de table (locks) avec le système Dynamics AX 2012 R3. Sans entrer dans les détails, le problème survenait lorsque la connexion à la base de données était effectuée via la classe UserConnection.

Je pouvais voir une requête très simple avec INSERT qui ne terminait jamais. La requête causait un lock sur la table, ainsi lorsqu'un autre utilisateur effectuait une requête sur la même table, son client AX ne répondait plus.

Le problème est dû à une configuration de la base de données: Allow Snapshot Isolation et Read Committed Snapshot Isolation (RCSI) étaient désactivés, le même problème est documenté sur le blogue suivant Microsoft Severe SQL Locking and Blocking on Dynamics AX

J'ai aussi mis à jour ce billet: Dynamics AX 2012 : SQL Settings

SQL : taille d'unité d'allocation 4KB vs 64KB

Je suis en milieu d’implantation d'un système Dynamics AX 2012 R3 pour un de nos clients. On m’a récemment remis une machine virtuelle pour le serveur SQL. Lorsque je reçois un serveur SQL, je vérifie toujours la configuration des disques et j’effectue des tests de performance. 

Je m’aperçois que les disques sont configurés avec des blocs de 4KB. Il est clair que Microsoft recommande de formater les disques en 64KB pour des raisons de performance.



Avant d’envoyer un courriel à mon client pour lui dire que les disques doivent être configurés avec des blocs de 64KB, je décide de faire des tests de performance afin de démontrer qu’il y a un gain de performance entre 4KB et 64KB.

À ma grande surprise, les tests n'indiquent AUCUN gain de performances. Voici mes tests :

64K = Lecture de blob de 64KB
1T, 4T, 8T = Nombre de thread
O32 = Queue Depth de 32
W0, W25 = Pourcentage en ecriture

Lors de mes tests, je désactive la cache logicielle et matérielle. La lecture et écriture est faite de façon aléatoire (non séquentielles)

Voici le tableau des résultats :

Disque avec taille d'unité d'allocation de 4KB


Disque avec taille d'unité d'allocation de 64KB



Je m’attendais à voir plus d'IOPs et une latence moins élever pour le disque configuré avec des blocs de 64 KB. Tout simplement parce que je me disais qu'il est plus rapide de lire 64 KB d'information lorsque le système doit lire seulement un bloc 64 KB. En revanche, lire 64 KB d’information lorsque le disque est formater avec des blocs de 4 KB requiert la lecture de 16 blocs au disque, donc plus d'opérations physiques (mouvement des têtes) et par conséquent une plus longue latence.

Donc, pourquoi les chiffres ne démontrent-ils aucune différence entre 4 KB et 64 KB ? J’en suis venu à la conclusion logique que les performances sont les mêmes puisque c'est un disque virtuel. Le disque est placé dans un VMFS formater avec des blocs de 1 MB. Donc, il y a très peu d'impact au niveau des disques physiques.

Ainsi, j'imagine que les performances sont meilleures seulement lorsque les disques sont RAW.

Toutefois, ma question est : pourquoi Microsoft recommande de formater les disques en 64 KB pour SQL même sur les machines virtuelles ? Sûrement parce que ça ne fait pas de mal.

SQL : Configuration pour Dynamics AX

Selon les recommandations des Microsoft, les options suivantes devraient être configurées sur vos bases de données :
All Microsoft Dynamics AX databases must use the same SQL collation.

  • Set COMPATIBILITY_LEVEL to 120 for SQL Server 2014
  • Set COMPATIBILITY_LEVEL to 110 for SQL Server 2012.
  • Set COMPATIBILITY_LEVEL to 100 for SQL Server 2008  / 2008 R2.
  • Set READ_COMMITTED_SNAPSHOT to on.
  • Set ALLOW_SNAPSHOT_ISOLATION to on 
  • Set AUTO_CREATE_STATISTICS to on.
  • Set AUTO_UPDATE_STATISTICS to on. 
  • Set AUTO_UPDATE_STATISTICS_ASYNC to off. 
  • Set AUTO_SHRINK to off. 
  • Set AUTO CLOSE  to off 
  • Max Degree of Parallelism set to 1
Source:

http://technet.microsoft.com/en-ca/library/dd309734.aspx
https://blogs.msdn.microsoft.com/axsupport/2011/09/22/severe-sql-locking-and-blocking-on-dynamics-ax/

Sur un serveur SQL avec beaucoup de base de données AX, il est long de vérifier toutes les options sur chaque base de données. Voici une requête afin de vous faciliter la vie.

SELECT
d.name AS [Database Name],
compatibility_level,
collation_name,

[Auto Shrink] =
CASE d.is_auto_shrink_on
WHEN 0 THEN 'OFF'
WHEN 1 THEN 'ON'
END,


[Auto Close] =
CASE d.is_auto_close_on
WHEN 0 THEN 'OFF'
WHEN 1 THEN 'ON'
END,

[Auto Create Statistics] =
CASE d.is_auto_create_stats_on
WHEN 0 THEN 'OFF'
WHEN 1 THEN 'ON'
END,

[Auto Update Statistics] =
CASE d.is_auto_update_stats_on
WHEN 0 THEN 'OFF'
WHEN 1 THEN 'ON'
END,

[Auto Update Statistics Async] =
CASE d.is_auto_update_stats_async_on
WHEN 0 THEN 'OFF'
WHEN 1 THEN 'ON'
END,

snapshot_isolation_state_desc AS [Allow Snapshot Isolation],

[Read-Committed Snapshot Isolation] =
CASE d. is_read_committed_snapshot_on
WHEN 0 THEN 'OFF'
WHEN 1 THEN 'ON'
END,

[Page Verify] =
CASE d. page_verify_option
WHEN 0 THEN 'NONE'
WHEN 1 THEN 'TORN_PAGE_DETECTION'
WHEN 2 THEN 'CHECKSUM'
END,

[Recovery Model] =
CASE d.recovery_model
WHEN 1 THEN 'FULL'
WHEN 2 THEN 'BULK_LOGGED'
WHEN 3 THEN 'SIMPLE'
END,

[Database State] =
CASE d.state
WHEN 0 THEN 'ONLINE'
WHEN 1 THEN 'RESTORING'
WHEN 2 THEN 'RECOVERING'
WHEN 3 THEN 'RECOVERY_PENDING'
WHEN 4 THEN 'SUSPECT'
WHEN 5 THEN 'EMERGENCY'
WHEN 6 THEN 'OFFLINE'
WHEN 7 THEN 'COPYING'
END

FROM sys.databases d

SELECT name, value
FROM sys.configurations
WHERE configuration_id IN (109,1539,1544)

SQL SSAS : user does not have permission to create a new object

Je voulais créer une base de données dans SQL Service Analysis Service, mais lors de la création de la BD, je recevais le message d’erreur suivant :

Either the 'Domain\Username' user does not have permission to create a new object in 'ServerName', or the object does not exist.

J’ai donc suivi la procédure suivante pour ajouter l’utilisateur membre du groupe administrateur de SSAS : http://msdn.microsoft.com/en-us/library/ms174561.aspx

Toutefois, je recevais le message d’erreur suivant lors de l’ajout :

Either the 'Domain\Username' user does not have permission to alter the 'ServerName' object, or the object does not exist.

Pourtant, j’étais membre de groupe administrateur local. Pour résoudre le problème, il faut lancer SQL Management Studio en tant qu’administrateur (Run as Administrator). Ensuite, il sera possible de faire des manipulations qui nécessitent les droits administrateurs.

SQL Database Engine : Database Autogrowth

Lorsque je me connecte sur le serveur SQL de mes clients, je réalise souvent que l’option Autogrowth de la base de données AX est configurée avec le paramètre par défaut. À quoi sert l’option Autogrowth ? Lorsque le fichier de base de données atteint sa pleine capacité, SQL doit ajouter de l’espace libre au fichier. La quantité d’espace libre ajouté est égale à la valeur de l’option Autogrowth de la base de données, le hic c’est que la valeur par défaut est 1 Mb. Donc, une transaction qui prend 100 Mb dans la base de données, le serveur SQL devra effectuer 100 fois une opération qui consiste à ajouter 1 Mb d’espace libre. Les performances du serveur en sont grandement affectées et je le prouve ici.

Pour faire mon test, je vais utiliser SQL Server Import and Export Wizard afin de transférer 1 Gb de données d'une base de données de tests vers une base de données vierge. Je vais surveiller le transfert de données avec une trace de SQL Profiler configurer avec l’évènement Data File Auto Grow.



Test #1 - Résultats

Configuration de la BD vierge
Recovery Model : Simple
Initial Data Size : 3MB
Initial Log Size : 1MB
Data File Autogrowth : 1MB
Log File Autogrowth : 10%

Résultats
Data File Auto Grow events: 1033
Temps de transfert: 1min49




Test #2 - Résultats

Configuration de la BD vierge
Recovery Model : Simple
Initial Data Size: 3MB
Initial Log Size: 1MB
Data File Autogrowth: 512MB
Log File Autogrowth: 512MB

Résultats
Data File Auto Grow events: 3
Temps de transfert : 1min20


Conclusion
Pour exactement la même transaction, j’ai gagné 29 secondes. Donc, la performance a été améliorée de 26% !

Pour modifier la configuration du paramètre Autogrowth, il suffit d'aller dans les propriétés de la base de données, cliquer sur Files et modifier le paramètre Autogrowth pour le fichier de Data et de Log


Dynamics AX 2012 : SQL Mirroring

Suite à la lecture du blogue sur la haute disponibilité dans SQL Server pour AX, je voulais expérimenter la solution Database Mirroring dans un environnement Dynamics AX 2012. En fait, je voulais savoir comment un AOS réagit lorsque la base de données principale d’un miroir tombe en panne. Est-ce que l’AOS s'éteint, est-ce que les utilisateurs sont déconnectés?

Configuration SQL

J'ai configuré un environnement SQL avec trois serveurs pour obtenir un miroir de type High-Safety Mode with Automatic Failover (Lien MSDN). Mis à part le serveur principal et secondaire, il y a aussi un serveur Witness dans l'architecture. Son rôle est de détecter une panne au sein du miroir et d'effectuer automatiquement le basculement de la responsabilité des bases de données vers mon serveur miroir en cas de défaillance du serveur principal.
Avec Dynamics Ax 2012, il est important de noter que j'ai configuré les deux bases de données AX en mode miroir : MicrosoftDynamicsAX et MicrosoftDynamicsAXBaseline.

Configuration AOS

J’ai configuré le service d’AOS afin qu’il se connecte sur mes bases de données situées sur le serveur principal. Il est impossible de configurer l’AOS pour spécifier le serveur miroir.

Test

Le démarrage de l’AOS fonctionne très bien, ensuite j’ouvre un client AX et j’effectue quelques opérations de routine. Je veux maintenant créer une panne sur mon serveur principal. Il existe plusieurs détections de défaillances dans une configuration miroir (Lien MSDN). Afin de simuler une défaillance, j’ai désactivé la carte réseau du serveur principal. Immédiatement, le serveur Witness a détecté le problème et a assigné la responsabilité de mes bases de données au serveur secondaire. Pendant le transfert, je suis incapable de naviguer à l'intérieur de mon client AX, mais après quelques secondes mon client AX fonctionne de nouveau et je peux effectuer des transactions, comment est-ce possible ?

Transparent Client Redirect

L’AOS utilise SQL Native Client 10.0 pour se connecter sur les bases de données. SNAC profite de la fonctionnalité Transparent Client Redirect qui consiste à mettre en cache les informations de connexion du serveur principal, mais aussi du serveur miroir ! Lorsque la connexion entre l’AOS et le serveur principal est brisée, SNAC redirige automatiquement la connexion vers le serveur de miroir sans aucune manipulation.
Finalement, l'AOS garde sa connexion avec la base de données puisque SNAC s'occupe de la redirection vers le miroir. Donc, le service AOS ne s'éteint pas et les clients AX restent connectés avec l'AOS ! Toutefois, entre la période de temps où la défaillance survient et le transfert de la responsabilité des bases de données vers le serveur secondaire soit terminé, mon client AX est non fonctionnel et peut émettre une erreur de connexion à la BD SQL, mais sachant que SNAC utilise A.C.I.D comme mode de fonctionnement, les transactions en cours lors de la panne sont renversées.

Certification : 70-432 SQL Server 2008, Implementation and Maintenance

Enfin, il me manquait seulement la certification SQL pour devenir Microsoft Certified IT Professional : Installation and Configuration for Microsoft Dynamics AX 2009. Ce n'est pas sans mal que j'ai réussi l'examen! Pour y parvenir, j'ai utilisé trois sources de formation différentes. Le livre MCTS Self-Paced Training Kit possède beaucoup d'informations, les sujets sont même un peu trop approfondi pour réussir l'examen. Malgré cela, il manque le côté visuel de l'explication. Pour compléter le livre, je suggère les vidéos de Train Signal ou de CBT Nuggets. Personnellement, je crois que la meilleure technique d'apprentissage est une combinaison du livre et d'une formation vidéo!
Pour ce qui est de l'examen, je conseille fortement de bien comprendre la sécurité, les sauvegardes et la haute disponibilité de SQL. Peu de questions sur les Index et les Tables, même si ceci est le coeur de SQL! Ensuite, l'examen est complété avec deux/trois questions de chaque "module" : Ressource Gouvernor, Data Management WhareHouse, SQL Agent...

Skills Being Measured

Installing and Configuring SQL Server 2008 (10 percent)
  • Install SQL Server 2008 and related services.
  • Configure SQL Server instances
  • Configure SQL Server services.
  • Configure additional SQL Server components.
  • Implement database mail.
  • Configure full-text indexing.
Maintaining SQL Server Instances (13 percent)
  • Manage SQL Server Agent jobs.
  • Manage SQL Server Agent alerts.
  • Manage SQL Server Agent operators.
  • Implement the declarative management framework (DMF).
  • Back up a SQL Server environment.
Managing SQL Server Security (15 percent)
  • Manage logins and server roles
  • Manage users and database roles.
  • Manage SQL Server instance permissions.
  • Manage database permissions.
  • Manage schema permissions and object permissions.
  • Audit SQL Server instances.
  • Manage transparent data encryption.
  • Configure surface area.
    Maintaining a SQL Server Database (16 percent)
    • Back up databases.
    • Restore databases.
    • Manage and configure databases.
    • Manage database snapshots.
    • Maintain database integrity.
    • Maintain a database by using maintenance plans.
    • Plan Designer 
      Performing Data Management Tasks (14 percent)
      • Import and export data.
      • Manage data partitions.
      • Implement data compression.
      • Maintain indexes.
      • Manage collations.
        Monitoring and Troubleshooting SQL Server (13 percent)
        • Identify SQL Server service problems.
        • Identify concurrency problems.
        • Identify SQL Agent job execution problems.
        • Locate error information.
          Optimizing SQL Server Performance (10 percent)
          • Implement Resource Governor.
          • Use the Database Engine Tuning Advisor.
          • Collect trace data by using SQL Server Profiler.
          • Collect performance data by using Dynamic Management Views (DMVs).
          • Collect performance data by using System Monitor.
          • Use Performance Studio.
            Implementing High Availability (9 percent)
            • Implement database mirroring.
            • Implement a SQL Server clustered instance.
            • Implement log shipping.
            • Implement replication.

              SQL SSRS 2005 : Kerberos & NTLM authentification

              Sur un ancien billet, j'indiquais comment configurer l'authentification NTLM sur SSRS 2008. Le même problème d'authentification peut survenir avec SSRS 2005, mais la procédure de changement de l'authentification n'est pas la même.
              Avec SSRS 2005 et IIS 6.0, il faut utiliser le script adsutil.vbs pour modifier l'authentification. La première étape est de connaître l'attribut "Identifier" de votre site web qui héberge le service SSRS. Pour ce faire :

              1 - Ouvrer la console IIS
              2 - Ouvrer l'arborescence sous votre serveur et cliquer sur Web Sites
              3 - Dans le panneau de droite, regarder le champ "identifier" à côté du site web qui héberge SSRS

              L'authentification est indépendante pour le dossier Reports et ReportServer. Pour connaître l'authentification actuellement configurée :

              1 - Ouvrer l'outil de commande intégré dans Windows
              2 - Lancer la commande : cd C:\Inetpub\AdminScripts
              • Pour le dossier reportserver, lancer la commande :
                cscript adsutil.vbs get w3svc/%identifier%/root/reportserver/NTAuthenticationProviders
              • Pour le dossier reports, lancer la commande :
                cscript adsutil.vbs get w3svc/%identifier%/root/reports/NTAuthenticationProviders
              Résultat : Si il n'y a jamais eu de modification, vous allez recevoir : NTAuthenticationProviders: (STRING) "Negotiate, NTLM". Nous allons le modifier pour avoir l'authentification NTLM seulement
              • Pour le dossier reportserver, lancer la commande :
                cscript adsutil.vbs set w3svc/%identifier%/root/reportserver/NTAuthenticationProviders "NTLM"
              • Pour le dossier reports, lancer la commande :
                cscript adsutil.vbs set w3svc/%identifier%/root/reports/NTAuthenticationProviders "NTLM"
              Pour plus d'information, voir la KB215383

              SQL SSRS 2008 : Kerberos & NTLM authentification

              Lorsque vous accédez à Enterprise Portal à partir du réseau, il se peut que l'authentification fonctionne bien pour SharePoint mais qu'une boîte Utilisateur/Password s'ouvre lorsque les rapports de SSRS veulent s'afficher. Dans ce cas, vous êtes probablement confronté à un problème de délégation d'authentification entre SharePoint (EP) et SSRS. Le White Paper Configuring Kerberos Authentication with Role Centers explique les étapes à suivre pour configurer Kerberos dans votre architecture Dynamics 2009.

              Advenir que EP, SSRS et SSAS sont configurés sur la même machine et que vous avez quand même une boîte d'authentification qui s'affiche, vous pouvez forcer SSRS à utiliser seulement l'authentification NTLM. Pour ce faire, il suffit de modifier le fichier rsreportserver.config.

              1 - Ouvrir C: Program Files\Microsoft SQL Server\%instance%\Reporting Services\ReportServer\rsreportserver.config
              2 - Modifier la section AuthentificationTypes pour laisser seulement NTLM:

              <Authentication>
              <AuthenticationTypes>
              <RSWindowsNTLM/>
              </AuthenticationTypes>
              </Authentication>