Malgré nos vives protestations, notre direction a décidé que l'équipe de développement devait se voir accorder des droits «sa» sur le serveur de développement. Le hic, c'est que nous, le groupe de soutien DB sommes toujours responsables de la maintenance de cette boîte.
On nous a maintenant confié la tâche de dresser une liste de choses à faire et à ne pas faire pour les équipes de développement avec ces privilèges améliorés.
Veuillez ajouter à cette liste:
DO - confiner les activités à la DB en cours de développement
NE PAS --
- modifier les paramètres d'instance SQL
- sp_configure (y compris cmdshell)
- ajouter / modifier / supprimer des paramètres de sécurité
- ajouter / modifier / supprimer des objets de base de données
- ajouter / modifier / supprimer des objets serveur comme des périphériques de sauvegarde et des serveurs liés
- ajouter / modifier / supprimer la réplication
- ajouter / modifier / supprimer des plans de maintenance
- toucher n'importe quelle base de données qui n'appartient pas à votre équipe
Tous les pointeurs vers les outils disponibles pour suivre les activités de ces utilisateurs seront grandement appréciés.
Réponses:
Si ce n'est pas trop tard, une option de compromis que j'ai vu bien fonctionner est plutôt que de mettre à niveau les autorisations ou de remplacer les comptes existants des développeurs, créez un compte séparé qui n'est utilisé que lorsqu'ils ont besoin des autorisations élevées.
Donc, normalement, ils fonctionnent sous des comptes individuels "restreints" (que j'utilise librement car ces comptes restreints ont encore besoin de lourdes autorisations - c'est-à-dire créer, supprimer, modifier pour les tables). Mais pour cette rare occasion où ils pensent en avoir besoin
sa
, ils peuvent se connecter en utilisant ce compte. Ensuite, vous pouvez marquer le compte dans vos journaux et effectuer une surveillance supplémentaire sur celui-ci. Vous avez donné aux développeurs l'accès qu'ils demandaient, mais d'une manière qui est un peu plus contrôlable.Finalement, en cas d'abus, les journaux de ce compte peuvent être utilisés comme preuve pour le retirer.
la source
Il indique ici (MSDN) que vous avez besoin de sysadmin (sa) pour déboguer sur SQL Server 2005.
Cependant, cette question SO montre une autre manière sans sa, ce que je pensais initialement. Laissez-les simplement s'exécuter
sp_sidedebug
Je suggère également de leur donner local SQL Express qui résout également d'autres problèmes ...
(édité avec plus d'informations)
Edit, après la réponse de W. Craig Trader
Autres problèmes avec les droits "sa", dans le pire des cas:
par exemple
xp_cmdshell 'scm -Action 6 -Server PRODSERVER'
la source
Sur suggestion, j'ai pour mettre en place une gestion basée sur les politiques et appliquer tous vos «faire» et «ne pas» comme règles de politique. Cela contribuerait grandement à protéger l'instance.
Je déploierais également l'audit des modifications DDL, voir Audit dans SQL Server 2008 , pas tant comme moyen de dissuasion, mais surtout comme système de suivi des modifications, donc quand quelque chose est vissé, au moins vous saurez ce qui a changé.
la source
S'il s'agit du serveur de DÉVELOPPEMENT, quel est le problème avec les DÉVELOPPEURS pouvant avoir un accès complet? Dire aux développeurs que vous ne pouvez pas ajouter / supprimer / modifier des objets de base de données (par exemple: tables, colonnes, index), c'est comme leur dire "Vous pouvez avoir un compilateur, mais vous n'êtes pas autorisé à l'exécuter". Il me semble que les développeurs veulent / ont besoin d'accéder à leur propre instance de base de données spécifiquement pour leur permettre de tester différentes méthodes de résolution de problèmes SANS avoir à fouiller avec les bases de données PRODUCTION ou TEST. Vous devriez encourager ce genre de comportement, pas le décourager.
Certains pourraient suggérer que les développeurs travaillent avec des instances locales de SQL Express, mais bien que SQL Express pour chaque développeur puisse résoudre certains problèmes, il a des limites et des caractéristiques de performances différentes de SQL Server complet sur un serveur distinct.
Ce que vous DEVRIEZ faire est d'instaurer un programme de sauvegarde régulier (au moins tous les soirs) et de travailler avec les développeurs pour vous assurer qu'ils savent comment lancer des sauvegardes non planifiées et restaurer à partir de sauvegardes, afin que les temps d'arrêt soient minimisés en cas de problèmes.
la source
Son le dev serveur, pas le serveur de groupe de soutien DB, ou le serveur de production. Gardez une bonne sauvegarde / image et laissez les développeurs pirater. Laisser DBA contrôler le devbox, c'est comme laisser la queue remuer le chien. Il est là pour que les développeurs travaillent sur les développeurs. Cela implique parfois de casser des choses et de supprimer des tables, puis de les remettre avec des paramètres différents. Les boîtes de développement vont toujours être dans un état de délabrement après un certain temps, c'est ce que nous faisons. Si nous ne savons pas où un problème survient, nous essayons différentes choses. Certains d'entre eux sont faciles à défaire, d'autres moins.
la source
sa
, mais faites en sorte qu'ils ne soient pas sa par défaut, afin qu'ils sachent quand ils font quelque chose qui aura besoin d'un peu de travail supplémentaire pour se déployer correctement.Je ne pense pas qu'ils aient besoin des privilèges SA sur la boîte de développement. Dans presque tous les cas, ils peuvent s'en passer.
Je pense qu'une bonne option est d'installer l'édition de développement locale.
question:
Vous ne voulez pas que les développeurs ajoutent / modifient / suppriment des objets de base de données? !! Comment vont-ils évoluer?
la source
Nous exigeons que tous les changements de structure de base de données soient effectués avec des scripts (même sur dev) et enregistrés dans subversion. Ensuite, selon un calendrier défini, nous actualisons le développement de prod et ils doivent réexécuter leurs scripts pour revenir à leur stade de développement. Cela permet de garantir que tout se fait via des scripts et que les scripts sont prêts au moment du déploiement.
Je sais qu'en 2008, vous pouvez configurer des déclencheurs DDL pour suivre les modifications structurelles de la base de données, pouvez-vous le faire en 2005? De cette façon, vous pouvez au moins savoir quand quelqu'un change un paramètre qui l'a fait et savoir pourquoi.
la source
L'audit SQL Server est ce que vous voulez, mais, si vous faites toute la création d'objets de base de données pour eux, pourquoi les développeurs ont-ils besoin de sa?
http://msdn.microsoft.com/en-us/library/cc280526.aspx
la source