Cryptage de la table des utilisateurs

Signaler
Messages postés
448
Date d'inscription
mardi 20 septembre 2005
Statut
Membre
Dernière intervention
26 juillet 2012
-
Messages postés
448
Date d'inscription
mardi 20 septembre 2005
Statut
Membre
Dernière intervention
26 juillet 2012
-
bonjour,
j'utilise sqlexpress et j'aimerais que ma table contenant le sutilisateurs avec leur login , mot de passe et niveau soit crypté.
peut -on  crypter avec des fonctionnalités de sql ou cela doit -il se faire par la programmation?

J'aimerais pourquoi pas crypter tte ma base (pas de cryptage trop fort, juste pour ne pas se fzaire pirater ses infos trop facilement)

Voila j'aimerais biezn savoir si cela est possible

sinon je m'y connai sassez peu en server sql (les requetes ca va mais l'admin bof bof) et donc j'aimerais bien savoir ou trouver toute sles infos pour l'administration , la mise en reseau , etc...
merci bien

3 réponses

Messages postés
448
Date d'inscription
mardi 20 septembre 2005
Statut
Membre
Dernière intervention
26 juillet 2012
1
j'oubliais de preciser
j'aimerais aussi avoir un password admin sur ma base (ne pas pouvoir faire sqlcmd -E pour e connecter)
et le smots de passes dont je parlais etaient ceux d'un programme pas de la base elle meme. Ce serait pour des utilisateurs qui voudraient utiliser un prog, il auraient alors a rentrer leur login et mdp (et j'aimerais bien que otut cela soit crypté ds la base, comme ca si quelqu'un veut lire les infos il ne saurait le sinterptreter)

voila

merci
Messages postés
259
Date d'inscription
mercredi 3 mai 2006
Statut
Modérateur
Dernière intervention
11 janvier 2010
7
On va faire dans l'ordre..


1. Le cryptage des données


Oui, il est possible sur SQL Server 2005 (Express incluse) de crypter les données directement dans le moteur. Les fonctions qui permettent de le faire seont EncryptXXX et DecryptXXX suivant d'un élément tel que Key, Cert. La plus simple étant celui-ci :
http://msdn2.microsoft.com/fr-fr/library/ms190357.aspx
Et bien sûr la même chose en Decrypt


C'est aussi possible de le faire au niveau application (il y a pas mal de classes en .ent qui permettent çà) après c'est un choix le résultat étant le même c'est à dire les données stockkées de manière crypté dans la base de données.


2. Le cryptage de la base de données


C'est possible mais violent, je ne connais qu'un seul moyen (de crypter toute la base de données) c'est utiliser les fonctions EFS (Encryption File System) de Windows XP ou 2003 qui permettent de crypter des fichiers, auquel il suffit de crypter 1 à 1 tous les fichiers de la base de données. Mais en terme de performance, c'est pas terrible...


3. L'accès à la base de données


Ne pas confondre l'accès aux bases de données et l'accès au serveur. L'accès au serveur c'est les comptes de connexion aussi appelés Login, pour par exemple interdire l'accès au serveur par -E c'est à dire par des connexions Windows il suffit de supprimer tous les logins Windows du serveur (Par défaut un seul existe : BUILTIN\Administrators) et c'est tout. L'accès au bases de données est un peu différent on créée des utilisateur dans chaque base de données pour un login et on lui donne des droits (lecture seule, propriétaire de la base de données, etc.).

Voilà un petit tour du sujet. Attention à ne pas abuser du cryptage cela deviendrait vite compliqué et mauvais en terme de perf si l'on en met partout.

Christian Robert - Winwise
http://blogs.developpeur.org/christian/
MCT - Database Development / Database Administration
Messages postés
448
Date d'inscription
mardi 20 septembre 2005
Statut
Membre
Dernière intervention
26 juillet 2012
1
merci pour ces informations.
Je ne veux qu'une administration assez simple de la base de données (du serveur en fait apparemment). Les utilisateursn'auront accès a cette base qu'a travers une interface logicielle (que je crée) et en fait leur accès seront limités par le logiciel. Je pense donc qu'il n'y a pas besoin de restriction au niveau des tables. Je veux juste supprimer l'accès via sqlcmd avec l'option -E pour empecher justement n'importe qui d'acceder a la BD.
Est-ce correct donc si je ne fait que supprimer BUILTIN\Administrators?
mais je dois quand meme entrer un nom d'utilisateur qui serait un admin et un mot de passe pour celui-ci (voir 2 ou 3 je sais pas encore avec des droit differents sur le serveur)?

Sous msde j'attribuer effectivement un nom d'util a chaque table avec un mot de passe et des droits, mais je n'ai pas eu a le faire sur sqlexpress. Etait-ce implicite?

Bon en tout cas je vais tester un peu ca et réécrire sur le forum s'il y a un probleme

merci encore