Quel compte d'utilisateur recommanderiez-vous d'exécuter les services SQL Server Express 2008 dans un environnement de développement?
La configuration de SQL Server Express 2008 vous permet d'attribuer un compte d'utilisateur différent pour chaque service.
Pour un environnement de développement, utiliseriez-vous un utilisateur de domaine, un utilisateur local, NT Authority NETWORK SERCVICE, NT AuthorityLocal System ou un autre compte et pourquoi?
4 réponses
Le système Local n'est pas recommandé, il s'agit d'un compte équivalent administrateur et peut donc conduire à un codage douteux qui profite des privilèges d'administrateur qui ne seraient pas autorisés dans un système de production car les administrateurs/DBA soucieux de la sécurité n'aiment vraiment pas exécuter les services en tant qu'administrateur.
Selon que l'instance de serveur doit accéder à d'autres ressources de domaine ou non, elle doit déterminer le type de Compte à privilèges bas sous lequel elle doit s'exécuter.
S'il n'a pas besoin d'accéder à des ressources de domaine (non anonymes), je crée normalement un compte local à faible privilège unique pour qu'il s'exécute afin de bénéficier de l'avantage de sécurité supplémentaire de ne pas avoir plusieurs services s'exécutant dans le même contexte d'identité. sachez que le compte de Service Local n'est pas pris en charge pour les services SQL Server ou SQL Server Agent.
S'il a besoin d'accéder à des ressources de domaine non anonymes, vous avez trois options:
- exécuter comme Service réseau qui est également un compte à faible privilège, mais qui conserve les informations d'identification du réseau des ordinateurs.
- exécuter sous un compte de Service Local
- S'exécute sous un compte de domaine personnalisé avec de faibles privilèges locaux. L'un des avantages de l'exécution sous le compte developers est qu'il est plus facile d'attacher des débogueurs à des processus dans votre propre identité sans compromettre la sécurité, de sorte que le débogage est plus facile (puisque les comptes non administrateurs n'ont pas le privilège d'attacher un débogueur à un autre processus d'identités par défaut). Un inconvénient à l'utilisation d'un autre compte de domaine est la surcharge de la gestion de ces comptes, d'autant plus que chaque service pour chaque développeur devrait idéalement avoir des informations d'identification uniques afin que vous n'ayez aucune fuite si un développeur devait partir.
La Plupart de ce que j'ai tendance à faire ne nécessite pas que le service accède aux ressources du domaine, donc j'ai tendance à utiliser des comptes locaux à faible privilège uniques que je gère. J'ai également exécuter exclusivement en tant qu'utilisateur non administrateur (et je l'ai fait sous XP SP2, Server 2003, Vista et Server 2008 sans problèmes majeurs) donc quand j'ai des cas où j'ai besoin du service pour accéder aux ressources du domaine, je n'ai aucun souci d'utiliser mes propres identifiants de domaine (de plus, je n'ai pas à inquiéter les administrateurs du réseau de créer / maintenir un tas d'identités de domaine non-production).
Ça dépend.
- Système Local-jamais, c'est trop élevé privilège.
- Service Réseau - Peut-être, si vous avez besoin de vous connecter à les ressources du réseau, mais c'est douteux.
- Service Local-Probablement le meilleur choix, des privilèges limités, ne pas déverrouiller les connexions réseau
- utilisateur interactif Local? Faire vraiment besoin d'avoir des droits de connexion, ou agir en tant qu'utilisateur?
- Utilisateur du domaine? Bonté non, sauf si vous êtes accédant à les lecteurs réseau à partir de l'intérieur; si SQL exécute amok alors un attaquant est authentifié sur le domaine.
MS a maintenant un bon article à ce sujet: http://msdn.microsoft.com/en-us/library/ms143504 (v=sql.105).aspx
Ils indiquent que le Service Local n'est pas autorisé pour le moteur SQL Server. Personnellement, j'utilise le système Local juste pour éviter les problèmes pendant le développement, mais en production, la meilleure pratique est de créer un compte de service au niveau du domaine avec juste les autorisations dont il a besoin pour faire le travail.
Tout ce qu'il veut utiliser par défaut. Changer cela ne fait que demander des ennuis plus tard.