2010-05-23 6 views
4

Après quelques recherches Google et un coup d'œil sur les questions ici, je ne peux pas sembler trouver ce que je pensais être une réponse de livre de cuisine pour les autorisations SQL Server.autorisations appropriées SQL Server pour les développeurs

Comme je le vois souvent dans les petites boutiques, la plupart des développeurs utilisaient un compte administrateur pour SQL Server pendant le développement. Je veux définir les rôles et les autorisations que je peux assigner aux développeurs afin que nous puissions faire notre travail, mais aussi le faire avec les autorisations minimales requises. Quelqu'un peut-il offrir des conseils sur ce que les autorisations SQL Server à attribuer?

Composants:

  • SQL Server 2008
  • SQL Server Reporting Services (SSRS) 2008
  • SQL Server Integration Services (SSIS) 2008

Plates-formes:

  • Production
  • Mise en scène/QA
  • Développement/Intégration

Nous courons la sécurité « en mode mixte » en raison de certaines applications héritées et les réseaux, mais allons vers Windows Auth. Je ne suis pas sûr si cela affecte vraiment le rôle mis en place.

je prévois de mettre en place un accès pour les développeurs à Prod et Mise en scène/QA blocs de données en lecture seule. Cependant, je veux toujours que les développeurs conservent la possibilité d'exécuter le profilage.

Nous avons besoin de comptes de déploiement avec des niveaux de privilèges plus élevés. Nous essayons actuellement de déterminer exactement quels sont les privilèges dont nous avons besoin pour les déploiements de paquets SSIS. Dans le serveur de développement, les développeurs ont besoin de larges privilèges. Cependant, je ne suis pas sûr que juste les faire tous admins est vraiment le meilleur choix.

Il est difficile de croire que personne n'a publié un exemple de script décent qui met en place ce genre de rôles avec un bon ensemble d'autorisations appropriées pour les développeurs et les exploitants.

Nous pouvons probablement trouver tout cela par les choses de verrouillage, puis en ajoutant des autorisations que l'on découvre la nécessité, mais ce sera trop grand pour tout le monde un PITA.

Quelqu'un peut-il me indiquer, ou de fournir un bon exemple pour les autorisations pour ce genre de rôles sur ces types de plates-formes?

+3

Que font les développeurs? Créer des tables? Index? Procédures stockées? Écrire des scripts pour remplir des tables? Peuvent-ils supprimer des tables ou des sprocs? Peuvent-ils accorder des autorisations? Peuvent-ils ajouter des connexions et des rôles? La grande variation dans les choses que les développeurs peuvent faire peut expliquer pourquoi il n'y a pas de réponse standard ici. – DOK

+0

Tout ce qui précède, sauf les connexions, sur le serveur Dev DB. Vous avez probablement raison, DOK, c'est pourquoi il n'y a pas de réponse standard. Dans beaucoup de petites boutiques, les développeurs sont des administrateurs sur le serveur de développement. Je cherchais un ensemble d'autorisations qui leur accorderait des capacités similaires à celles de l'administrateur dans la plupart des cas, mais leur refuserait les opérations les plus risquées (comme créer des connexions). Donc, je vais mettre en œuvre une première bonne estimation, puis passer par le processus PITA d'ajouter des privilèges que nous heurtons contre les murs dans les mauvais endroits. +1 pour un commentaire qui est probablement la réponse. –

+0

DOK, s'il vous plaît poster votre réponse comme une réponse afin que je puisse aller de l'avant et marquer cette question comme une réponse. Je déteste laisser des questions ouvertes, pour ne pas mentionner les "créer une prime". –

Répondre

2

Cela varie considérablement d'une entreprise à l'autre. L'ingrédient clé est de verrouiller la production afin que les développeurs ne puissent pas créer ou changer d'objets. Nos devs n'ont que des droits de datareader sur prod, rien d'autre. Ils ne peuvent même pas exécuter un proc stocké sauf s'ils sont connectés à l'application et utilisent les autorisations de l'application.

Nous donnons assez des droits beaucoup complets à de nombreux développeurs sur dev, mais il peut varier en fonction de bases de données qu'ils sont censés se développer contre et quels serveurs ils sont d'accès pour les applications qu'ils prennent en charge. Ainsi, un développeur disposant d'un accès complet à un serveur de développement peut ne pas avoir de droits de sélection sur un autre.

En verrouillant devs out prod, nous avons gagné plusieurs choses critiques.Tout d'abord, il n'y a pas de développement de base de données cow-boy. Ils savent qu'ils doivent créer des scripts pour que quelqu'un d'autre puisse les exécuter et ainsi ils ne font pas de changements aléatoires qu'ils oublient ensuite. Cela signifie également que les scripts ne sont pas un problème pour le contrôle de la source, car les personnes qui ont le droit de prod produiront uniquement un script s'il est dans le contrôle Source.

Il n'y a pas de gens qui font sur la volée urgence, les changements non testés à prod, qui ne sont jamais jusqu'à dev et qa et sont ainsi perdu la prochaine fois qu'une nouvelle version est chargée vers le haut. En conséquence, les changements qui n'ont pas fonctionné sur l'aiguillon ont également diminué, car maintenant tout est testé avant que quelqu'un essaie de le lancer.

Les personnes qui modifient les données à la volée ne produisent pas et mettent accidentellement à jour toute la table utilisateur car elles ont oublié de mettre en surbrillance une clause where (oui, cela s'est produit avant que nous verrouillions prod).

+0

Oui, j'ai mentionné que j'avais prévu de configurer l'accès en lecture seule à Prod et Staging. –

1

Je cherchait des avis similaires mais n'en ai trouvé aucune. Après quelques expérimentations, je pense qu'une configuration simple serait d'ajouter l'utilisateur au rôle de serveur "dbcreator", puis de les ajouter au rôle "db_owner" dans chaque base de données sur laquelle ils vont travailler. Cela permettrait à l'utilisateur de créer de nouvelles bases de données, ainsi que de modifier celles dans lesquelles ils sont membres de "db_owner".

+0

Je suis d'accord que ce sont des premiers pas raisonnables. J'ai quelques idées à ce sujet que je n'ai pas eu le temps d'écrire. Je pense que ce n'est pas vraiment utile de répondre à cette question avec «ça dépend ...» Je suis toujours convaincu que quelqu'un peut créer un «modèle d'échantillon» raisonnable qui permettrait à des gens comme nous d'avoir un point de départ décent. À partir de là, nous pourrions appliquer nos propres restrictions ou étendre les autorisations en fonction des besoins ou de la politique de l'entreprise. –

Questions connexes