SQL Server - Introduction à la Gestion des Droits


précédentsommairesuivant

Introduction

Après un bref résumé expliquant pourquoi il est nécessaire de définir une politique de sécurité, nous nous attarderons plus longuement à expliquer comment implémenter la gestion des droits de manière simple et efficace, afin que le développeur puisse se concentrer sur les nombreuses autres tâches qui lui incombent. Tout au long de l'article, nous expliquerons pourquoi la gestion des droits devrait se faire le plus tôt possible lors du développement.

Bien que cet article concerne principalement SQL Server (cela permet de donner des exemples précis et de présenter certaines spécificités de SQL Server), la plupart des notions abordées dans cet article (concernant la sécurité et la gestion des droits) peuvent s'appliquer à quasiment tous les SGBD.

1. Généralités

1.1. Pourquoi gérer les droits ?

La gestion des droits d'une base de données est un domaine assez vaste et il existe de nombreux articles sur le sujet. Voici les aspects qui me semblent les plus importants :

  • sécurité : se protéger contre les attaques
    Les réseaux informatiques sont de plus en plus souvent la cible d'attaques. Si, malgré les protections mises en place, un individu arrive à s'introduire dans votre base de données (en volant un mot de passe ou en se faisant passer pour une autre personne), il faut que son rayon d'action soit le plus limité possible

  • protection : empêcher les utilisateurs d'effectuer certaines actions
    L'erreur est humaine, c'est un fait, et il peut arriver que des utilisateurs parfaitement habilités à utiliser la base de données modifient par erreur certaines données qui devraient normalement être protégées. Une gestion correcte des droits permet de se prémunir contre ce genre de désagrément en empêchant l'exécution de certaines tâches

  • confidentialité : restreindre l'accès à certaines données
    Il est inconcevable que l'ensemble des salariés d'une entreprise aient accès aux données concernant, par exemple, les salaires. La gestion des droits permet de restreindre la visibilité de certaines données (seules les données strictement nécessaires doivent être accessibles)

Si vous recherchez des informations plus générales sur la gestion des droits, je vous recommande l'excellent article d'Hugo Etiévant : la gestion des droits en base de données.

1.2. Les erreurs les plus fréquentes

Voici les erreurs les plus fréquentes en matière de gestion des droits en base de données :

  • laisser les applications se connecter avec le login "sa" (administrateur)

  • pire: laisser les applications se connecter avec le login "sa" et sans mot de passe !

  • gérer les permissions entièrement au niveau applicatif quand il est possible de définir certains droits sur les objets de la base de données (tables, vues, procédures)

  • accéder directement au contenu des tables (en lecture et écriture) plutôt que par le biais de vues ou de procédures stockées

  • ne pas définir de rôles

  • ne pas gérer les droits sufisamment tôt

Certaines de ces erreurs sont parfois très dures à récupérer par la suite (ex: remplacer l'accès à des tables par des vues, restreindre les permissions...), d'où l'intérêt de se soucier très tôt de la gestion des droits.

Si vous avez déjà commis une ou plusieurs de ces erreurs, nous vous recommandons vivement la lecture de cet article.
Si vous n'avez commis aucune de ces erreurs (félicitations !), cet article pourra quand même vous intéresser et vous pourrez en faire profiter certains de vos collègues.

1.3. Gestion des droits dans le processus de développement

En fait, gérer les droits est finalement très simple si on s'y prend suffisamment tôt.

A chaque création d'un nouvel objet dans la base de données (ex: une procédure stockée), il suffit de suivre les étapes suivantes :

  1. on créé le nouvel objet
  2. on fait la liste des rôles qui ont besoin d'accéder à cet objet et on affecte les droits en conséquence
  3. on teste si les personnes concernées ont accès à l'objet (ex: peuvent exécuter la procédure stockée).
    Si une exception est levée à ce moment là, il manque des droits

Au cours de ce processus, de nouveaux profils d'utilisateurs peuvent apparaître (des utilisateurs doivent avoir des droits particuliers, que les autres n'ont pas), d'où la nécessité de définir de nouveaux rôles (et d'attribuer ces rôles à différents utilisateurs).



Dans la section suivante, nous expliquerons plus en détails ces différentes notions (rôles, utilisateurs...)




précédentsommairesuivant

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+   

  

Copyright © 2007 pcaboche. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.