Déploiement avec accès BDD
Bonjour,
Je développe actuellement une application Python se connectant à une base de données situées sur un serveur distant. La connexion permet d'exécuter des fonctions pré-enregistrées. Jusque là, pas de souci si l'utilisateur entre son login / mdp.
L'application sera déployée et je suis en train d'ajouter une gestion des droits pour les requêtes effectuées. Imaginons : niveau 1, accès complet ; niveau 2, accès limité ; niveau 3, accès très limité. C'est donc l'application qui gère ces niveaux d'accès.
Je n'ai donc finalement besoin que d'un seul login / mdp pour me connecter de l'application à la BDD et l'application acceptera d'exécuter les fonctions ou non selon le niveau dans lequel l'utilisateur se trouve.
Pour ma part, le code source peut être distribué sans souci.
Mais mon problème se situe là : comment insérer ce login et mdp dans le code source sans que les différents utilisateurs puissent y accéder. En principe, l'application sera principalement utilisée sous Windows et j'utilise py2exe pour la création d'un exécutable.
Comment puis-je procéder ?
Merci d'avance !
Analyse correcte du problème
En général, les bases de données disposent déjà d'une gestion efficace des droits d'accès. A mon avis, c'est là qu'il faut gérer intelligemment ceux-ci.
L'idéal serait que chaque utilisateur utilise son couple user/password de la BD et
non un utilisateur générique. Mais évidemment, ce n'est pas toujours possible.
J'ai déjà été confronté à ce problème, voici comment j'avais procédé. Dès que l'utilisateur devait avoir un certain niveau de pouvoir, que ce soit en modification voire en lecture, je demandais au DBA de lui créer un couple identifiant/mot de passe. Cela permet une gestion très fine de ce qu'il peut faire exactement.
Tous les autres utilisateur ("très limité") accèdent à la bd via un compte générique "obfusqué" (pardonnez mon franglais) correspondant à des droits intrinsèque à la BD très limités également.
En outre, c'est une procédure stockée, activée au logon qui identifie l'utilisateur par soft. Ladite procédure n'étant, évidemment, pas accessible à l'utilisateur limité.
Pour plus de sécurité, la procédure doit être capable de rejeter toute connexion qui n'a pas été authentifiée rapidement. Ainsi, un petit malin ne pourra pas se connecter à la bd à l'aide d'un outil générique. De toute façon, en faisant soigneusement les choses, à partir de se compte il n'aurait pas d'accès dangereux pour les données. (Pas de select sur les données sensibles, pas de modification ou d'effacement, juste peu-être de l'insertion dans certaines tables)
Ce n'est peut-être pas la panacée, mais cela devrait convenir.
Au pire, on peut imaginer que seuls les utilisateur avec un accès complet
aient leur propre couple identifiant/mot de passe vers la bd, les autres utilisant un utilisateur générique plus limité. C'est plus faible, mais ça marche aussi.
Dans tous les cas, il faut proscrire une connexion générique avec tout pouvoir.