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 ?