Sécurité sur une base SQLSERVER

publicité
Sécurité sur une base SQLSERVER
TP 2
Problématique
Approfondissement sur la sécurité d’accès aux objets d’une base de données.
Pré requis Avoir terminé le TP1 sur la sécurité d’une base de données SQL
SERVER.
Etape 1 interface graphique et commandes SQL
GRANT : autoriser
- Allouer l’autorisation à Pierre de faire un SELECT sur la table
ENTREPRISE en utilisant la commande SQL dans analyseur de requête :
- GRANT SELECT ON ENTREPRISE TO Pierre.
- Vérifier graphiquement les changements.
- Pouvez-vous mettre derrière l’ordre GRANT plusieurs opérations ?
Réponse : OUI
- GRANT SELECT, UPDATE, DELETE ON ENTREPRISE TO Pierre.
REVOKE : supprimer
- Annuler l’autorisation à Pierre de faire un SELECT sur la table
ENTREPRISE en utilisant la commande SQL dans analyseur de requête :
- REVOKE SELECT ON ENTREPRISE TO Pierre.
Remarques :
Ce travail d’administrateur de base de données peut-être vite fastidieux, on
comprend l’intérêt pour un administrateur de base de données d’allouer des
autorisations via des scripts.
Etape 2 administration globalisée
L’idée est d’utiliser la notion de role pour donner des autorisations par défaut.
Un role c’est un objet qui contient les utilisateurs qu’on y met et les
autorisations qu’on lui assigne. Il ne faut jamais changer les autorisations sur
le role public ; plutôt créer un nouveau role et lui allouer des autorisations. On
placera les utilisateurs désirés dans ce nouveau role.
Pour administrer les autorisations sur les objets des bases de données il est plus
confortable d’utiliser des roles ou groupes d’utilisateurs. Utiliser à cet effet
l’icône ROLE de la base CONTACTSEC. Créer un role (équivalent de groupe
global où l’on met les utilisateurs dans 2000 server), ex rign, rlambda. Placer à
bon escient les utilisateurs adéquats dans les roles.
Réalisation : SECURITES sur la base CLINIQUES
Argumentation avant / après, Faire un tableau
Montrez que l’autorisation sur un utilisateur et l’autorisation sur un role
s’additionnent comme pour les permissions NTFS. On part avec une situation où
aucun utilisateur, à part l’administrateur, n’a accès.
a°) créer un role RoleCLINIQUES, ajouter Pierre et Paul dans ce role, il faut
que Pierre et Paul soient des utilisateurs de Windows 2000 ou de XP.
b°)Assignez la permissions SELECT sur la table Implantation à
RoleCLINIQUES
c°) Pierre et Paul peuvent-ils faire des SELECT sur la table Implantation ?
Réponse Oui
Pierre et Paul héritent des autorisations de RoleCLINIQUES.
Etape 3 Différences entre DENY, REVOKE, faire un tableau
Le problème est :
si je fais un Deny SELECT sur une table pour l’utilisateur Paul, celui-ci étant
dans un role qui alloue l’autorisation de faire un SELECT. Est-ce que Paul
pourra encore faire un SELECT ?
si je fais un Revoke SELECT sur une table pour l’utilisateur Paul, celui-ci étant
dans un role qui alloue l’autorisation de faire un SELECT. Est-ce que Paul
pourra encore faire un SELECT ?
- Quelles sont les différences entre une case qui est cochée, avec une croix
rouge, à blanc, en grisé ?
- Que fait la commande DENY SELECT ON Implantation TO PAUL, quel est
son équivalent graphique ?
- Que fait la commande REVOKE SELECT ON Implantation TO Paul, quel est
son équivalent graphique ?
Etape 4 Syntaxe : exemple avec l’ordre GRANT
Que fait la commande GRANT SELECT ON Implantation TO PIERRE WITH
GRANT OPTION ?
Peut-on écrire GRANT SELECT ON Implantation TO PIERRE, PAUL ?
Réponse OUI.
Peut-on écrire GRANT SELECT ON Implantation, Specialite TO PAUL ?
Réponse Non, une seule table
Les commandes GRANT affectent-elles les autorisations sur les utilisateurs
Administrateur et IGN ?
Téléchargement