Access denied lors de l’installation d’une instance SQL Server 2008 et 2008 R2

Décidément l’installation de SQL Server en milieu sécurisé avec droits restreints au maximum révèle toujours quelques surprises. Lors de ma dernière installation j’ai eu à faire face à un simple message d’erreur « Access Denied » sans aucun autre complément d’informations.


Les messages d’erreur rencontrés pendant l’installation sont les suivants :

image

image

La partie du log qui nous intéresse ici est la suivante :

2011-09-21 15:00:49 Slp: Configuration action failed for feature SQL_Engine_Core_Inst during timing ConfigRC and scenario ConfigRC.
2011-09-21 15:00:49 Slp: Access is denied
2011-09-21 15:00:49 Slp: The configuration failure category of current exception is ConfigurationFailure
2011-09-21 15:00:49 Slp: Configuration action failed for feature SQL_Engine_Core_Inst during timing ConfigRC and scenario ConfigRC.
2011-09-21 15:00:49 Slp: System.ComponentModel.Win32Exception: Access is denied
2011-09-21 15:00:49 Slp:    at System.Diagnostics.ProcessManager.OpenProcess(Int32 processId, Int32 access, Boolean throwIfExited)
2011-09-21 15:00:49 Slp:    at System.Diagnostics.Process.GetProcessHandle(Int32 access, Boolean throwIfExited)
2011-09-21 15:00:49 Slp:    at System.Diagnostics.Process.OpenProcessHandle()
2011-09-21 15:00:49 Slp:    at System.Diagnostics.Process.get_Handle()
2011-09-21 15:00:49 Slp:    at Microsoft.SqlServer.Configuration.SqlEngine.SqlServerServiceBase.WaitSqlServerStart(Process processSql)
2011-09-21 15:00:49 Slp:    at Microsoft.SqlServer.Configuration.SqlEngine.SqlEngineDBStartConfig.ConfigSQLServerSystemDatabases(EffectiveProperties properties, Boolean isConfiguringTemplateDBs, Boolean useInstallInputs)
2011-09-21 15:00:49 Slp:    at Microsoft.SqlServer.Configuration.SqlEngine.SqlEngineDBStartConfig.DoCommonDBStartConfig(ConfigActionTiming timing)
2011-09-21 15:00:49 Slp:    at Microsoft.SqlServer.Configuration.SqlConfigBase.SlpConfigAction.ExecuteAction(String actionId)
2011-09-21 15:00:49 Slp:    at Microsoft.SqlServer.Configuration.SqlConfigBase.SlpConfigAction.Execute(String actionId, TextWriter errorStream)
2011-09-21 15:00:49 Slp: Exception: System.ComponentModel.Win32Exception.
2011-09-21 15:00:49 Slp: Source: System.
2011-09-21 15:00:49 Slp: Message: Access is denied.
2011-09-21 15:00:49 Slp: Watson Bucket 1

Finalement une petite recherche dans les articles Microsoft m’ont amené à une explication complète du problème. Je vous invite d’ailleurs à le lire pour une explication précise de la cause. Pour faire simple la méthode OpenProcess tente de récupérer un handle sur un processus externe mais pour se faire il faut que le groupe Local Administrators possède le privilège Debug Programs. La configuration de ce privilège s’effectue dans la gestion de sécurité locale de l’ordinateur ou via GPO. Dans mon cas ce privilège n’était pas accordé au groupe Local Administrators en accord avec la politique de sécurité de l’entreprise concernée.

image

Une fois ce privilège accordé pensez à redémarrer votre serveur. L’installation devrait s’effectuer sans problème par la suite (ou du moins ne pas bloquer sur cette même erreur :-) )

Bonne installation !!

David BARBARIN (Mikedavem)
MVP SQL Server

Laisser un commentaire