Sécurité et gestion des accès
- MYPE SAS
- 6 mars
- 3 min de lecture
Dernière mise à jour : 24 juil.
Afin de sécuriser une base de données, nous allons suivre la démarche suivante. Tout d’abord, nous allons attribuer à chaque utilisateur une fonction, ou rôle, tels que db_dataowner ou admin. Ensuite, nous conditionnerons l’accès aux tables de notre base de données aux fonctions des utilisateurs. Dans cet article, nous allons apprendre deux méthodes pour mettre en place ce contrôle des accès : à l’aide de l’explorateur d’objets (pannneau de gauche) de SQL Server, et à l’aide de code DCL (Data Control Language) à taper en requête.
Méthode 1 : à l’aide de l’explorateur d’objets de SQL Server
Tout d’abord, ouvrons la boîte de dialogue de création d'une nouvelle connexion, depuis l’onglet Sécurité de SQL Server.

On crée un nouvel utilisateur.

Après avoir créé l’utilisateur user1, on lui attribue la base de données, et les rôles db_owner et public.

On voit maintenant apparaître dans l’explorateur d’objets la connexion de user1.

Méthode 2 : à l’aide d’un script DCL à taper en requête
DCL est une extension du langage SQL, qui permet entre autres de gérer l’accès aux bases de données.
Avec le script ci-dessous, on crée l’utilisateur user1 et, comme dans la méthode 1, on lui attribue la base de données unilib et le rôle de db_owner.

Propriétés de sécurité du serveur
Jusqu’ici, nous nous sommes concentrés sur le contrôle des accès au niveau des bases de données. Pour que nos choix soient appliqués, il faut indiquer nos préférences de connexion au niveau du serveur (localhost) dans son ensemble.
Dans l’explorateur d’objets de SQL Server, on accède aux propriétés de notre serveur.

Dans les propriétés de sécurité, on sélectionne les paramètres ci-dessous.

Pour se connecter la prochaine fois
Maintenant, on a paramétré SQL Server pour avoir une connexion sécurisée à nos bases de données. A la prochaine connexion, on pourra utiliser le user1 créé plus tôt pour se connecter.

Après connexion en tant que user1, on voit bien la base de données unilib, à laquelle nous avons accès, dans notre explorateur d’objets.

Création d’un utilisateur admin
Cet utilisateur est protégé par un mot-de-passe, et a accès à toutes les bases de données. Voici comment créer ce profil.
A l’instar de la méthode 1, on part de l’explorateur d’objets.

A la page de création d’une nouvelle connexion, on rentre le mot-de-passe choisi pour l’admin, et on décoche l’option ‘appliquer la stratégie de mot de passe’.

Ensuite, on attribue à admin l’accès à toutes les bases de données (en cochant ‘public’) et le rôle de sysadmin.

On voit maintenant bien apparaître dans l’explorateur d’objets, la connexion de user1 mais aussi celle de l’admin.

Annexe : commandes DCL pratiques
Pour attribuer des droits :
GRANT … ON … TO …
Exemple : GRANT SELECT, INSERT, UPDATE ON table1 TO user1
Pour attribuer des droits sur l’utilisation d’une table à un autre utilisateur :
ALTER AUTHORIZATION ON SCHEMA ::… TO …
Exemple : ALTER AUTHORIZATION ON SCHEMA::schema1 TO user2
Pour changer le mot de passe d’un utilisateur :
ALTER LOGIN nom_utilisateur WITH PASSWORD=‘nouveau_mot_de_passe’
Pour interdire un accès ou supprimer des droits :
REVOKE … ON … FROM …
supprime le droit accordé précédemment
DENY … ON … TO …
interdit explicitement quelque chose, quelques soient les permission accordées auparavant



Commentaires