Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide

SQL Server : Droits pour lire et écrire dans la base de registre

J'ai illustré il y a peu l'utilisation de la procédure stockée étendue xp_regread (http://blogs.codes-sources.com/christian/archive/2009/03/12/sql-server-d-terminer-o-se-trouvent-les-r-pertoires-par-d-faut.aspx) Bien que non documentée et susceptible d'être changé dans les prochaines versions, elle pourra se révéler d'un aide précieux. Sachez que cette-ci possède un homologue pour réaliser des écritures dans la base de registre xp_regwrite (et quelques autres).

Ces 2 procédures stockées sont utilisable pour tous les utilisateurs du serveur, tout login crée au sein d'une instance peu utiliser ces 2 procédures stockées (ou du moins xp_regread, les écritures sont elles plus restreintes). Mais par contre seul les membres du rôle serveur sysadmin possède le privilège d'utiliser le compte de service de SQL Server pour aller lire et écrire où bon leur semble dans cette même base de registre.

Pour résumer les droits :

  • Votre login n'est pas membre du rôle serveur « sysadmin »
    • Vous pouvez lire les clefs de base de registre suivantes avec xp_regread :
      • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\<INSTANCE>
      • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\<version>
      • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer
      • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SQLServer
    • Vous pouvez écrire dans les clefs de base de registre suivante avec xp_regwrite :
      • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\<INSTANCE>
      • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlset\Services\SQLAgent$<INSTANCE>
    • Si vous souhaitez accorder des lectures ou écritures supplémentaires dans la base de registre il faudra le faire via en ajoutant les clefs Xp_regread Allowed Paths & Xp_regwrite Allowed Paths dans
      • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\<Instance_name>\MSSQLServer\ExtendedProcedure (A créer s'il n'existe pas)
      • Et lister les clefs que vous souhaitez rendre accessible via les procédures stockées cités. Xp_regread Allowed Paths & Xp_regwrite Allowed Paths sont de type Multi string value.
      • Les clefs listées ici ne seront accessibles que si le compte de service de SQL Server y a effectivement accès. Sinon l'exécution de l'une des procédures stockées cités se soldera par une erreur du système d'exploitation.
  • Votre login est membre du rôle serveur « sysadmin »
    • Toutes les clefs de base de registre sont accessibles à condition que le compte de service de SQL Server ai les droits appropriés dessus. Soit celui-ci est le compte système auquel cas aucune restriction ne s'appliquera, soit un compte local/network service ou un utilisateur standard auquel cas seuls les clefs de base de registre nécessaires à l'exécution de SQL Server seront accessible. Vous devrez alors accorder les droits à la main avec l'éditeur de base de registre.

Voici une référence sur le sujet, mais qui date de SQL Server 2000, vous constaterez une différence avec votre version (2005 ou 2008) : http://support.microsoft.com/kb/887165/en-us

Moralité, faites très attention au choix du compte de service :
http://blogs.codes-sources.com/christian/archive/2008/04/28/sql-server-quels-comptes-de-service-choisir.aspx

Un login membre du rôle serveur « sysadmin » (sa par défaut) peut avoir accès à toute la configuration de Windows dans certains cas et je vous laisse imaginer les dégâts possibles ! Pour permettre une utilisation de la base de registre sans passer par des privilèges élevés il vous faudra user des clefs cités ci-dessus et de l'éditeur de base de registre.

Pour tuer dans l'œuf tout débat sur le sens de stocker quelque chose dans la base de registre : je n'aime pas cela et je préfère loin de là une base de données avec des tables dédié à la configuration de l'application… Mais dans certaines situations l'existant est là et vous ne pourrez pas y couper !

Bonne configuration...

Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :
Publié lundi 6 avril 2009 22:58 par christian

Commentaires

Pas de commentaires
Les commentaires anonymes sont désactivés

Les 10 derniers blogs postés

- Merci par Blog de Jérémy Jeanson le 10-01-2019, 20:47

- Office 365: Script PowerShell pour auditer l’usage des Office Groups de votre tenant par Blog Technique de Romelard Fabrice le 04-26-2019, 11:02

- Office 365: Script PowerShell pour auditer l’usage de Microsoft Teams de votre tenant par Blog Technique de Romelard Fabrice le 04-26-2019, 10:39

- Office 365: Script PowerShell pour auditer l’usage de OneDrive for Business de votre tenant par Blog Technique de Romelard Fabrice le 04-25-2019, 15:13

- Office 365: Script PowerShell pour auditer l’usage de SharePoint Online de votre tenant par Blog Technique de Romelard Fabrice le 02-27-2019, 13:39

- Office 365: Script PowerShell pour auditer l’usage d’Exchange Online de votre tenant par Blog Technique de Romelard Fabrice le 02-25-2019, 15:07

- Office 365: Script PowerShell pour auditer le contenu de son Office 365 Stream Portal par Blog Technique de Romelard Fabrice le 02-21-2019, 17:56

- Office 365: Script PowerShell pour auditer le contenu de son Office 365 Video Portal par Blog Technique de Romelard Fabrice le 02-18-2019, 18:56

- Office 365: Script PowerShell pour extraire les Audit Log basés sur des filtres fournis par Blog Technique de Romelard Fabrice le 01-28-2019, 16:13

- SharePoint Online: Script PowerShell pour désactiver l’Option IRM des sites SPO non autorisés par Blog Technique de Romelard Fabrice le 12-14-2018, 13:01