Introduction Le contrôle d’accès représente une opération importante au niveau

Introduction Le contrôle d’accès représente une opération importante au niveau de la gestion de la sécurité sur un serveur de bases de données. La sécurisation des données nécessite une organisation des objets de façon indépendante des utilisateurs, ce qui est possible par les schémas. La sécurité passe également par un meilleur contrôle des autorisations et la possibilité d’accorder juste les privilèges nécessaires à chaque utilisateur pour qu’il puisse travailler de façon autonome. Pour l’organisation de cette politique de sécurité, il faut prendre en compte l’organisation hiérarchique des éléments de sécurité, de façon à rendre la gestion des droits d’accès simple et efficace. SQL Server s’appuie sur trois éléments clés qui sont : ● les entités de sécurité ; ● les sécurisables ; ● les autorisations. Les entités de sécurité sont des comptes de sécurité qui disposent d’un accès au serveur SQL. Les sécurisables représentent les objets gérés par le serveur. Ici, un objet peut être une table, un schéma ou une base de données par exemple. Les autorisations sont accordées aux entités de sécurité afin qu’elles puissent travailler avec les sécurisables. L’organisation hiérarchique permet d’accorder une autorisation (par exemple SELECT) sur un sécurisable de niveau élevé (par exemple le schéma) pour permettre à l’entité de sécurité qui reçoit l’autorisation d’exécuter l’instruction SELECT sur toutes les tables contenues dans le schéma. Les vues du catalogue système permettent d’obtenir un rapport complet et détaillé sur les connexions existantes, les utilisateurs de base de données définis et les privilèges accordés. Quelques­unes de ces vues sont présentées ci­ dessous : ●sys.server_permissions : liste des permissions de niveau serveur et de leurs bénéficiaires. ● sys.sql_logins : liste des connexions ● sys.server_principals : entité de sécurité définie au niveau serveur ●sys.server_role_members : liste des bénéficiaires d’un rôle de serveur. ●sys.database_permissions : liste des permissions et de leur bénéficiaire au niveau base de données. ●sys.database_princpals : entité de sécurité de niveau base de données. ● sys.database_role_members : liste des bénéficiaires d’un rôle de base de données. Pour simplifier la gestion des droits d’accès, il est possible d’utiliser trois types de rôles. Les rôles de serveur qui regroupent des autorisations au niveau du serveur, ces autorisations sont valables pour toutes les bases installées. Les rôles de base de données, regroupent quant à eux des droits au niveau de la base de données sur laquelle ils sont définis. Et enfin les rôles d’applications, définis sur les bases de données utilisateur, permettent de regrouper les droits nécessaires à la bonne exécution d’une application cliente. Gestion des accès Serveur Avant de pouvoir travailler avec les données gérées par les bases, il faut dans un premier temps se connecter au serveur SQL. Cette étape permet de se faire identifier par le serveur SQL et d’utiliser par la suite tous les droits qui sont accordés à notre connexion. Il existe dans SQL Server deux modes de gestion des accès au serveur de base de données. Attention, dans cette section, seule la partie connexion au serveur est abordée. Il est important de bien distinguer la connexion au serveur et l’utilisation de bases de données. La connexion au serveur permet de se faire identifier par le serveur SQL comme un utilisateur valide, pour utiliser, par la suite, une base de données : les données et les objets. L’ensemble de ces droits seront définis ultérieurement. Ces droits sont associés à un utilisateur de base de données, pour lequel correspond une connexion. On parlera de connexion au serveur ou de logins. 1. Mode de sécurité Windows Ce type de gestion de la sécurité permet de s’appuyer sur les utilisateurs et les groupes Windows pour le domaine et le poste local. SQL Server utilise la gestion des utilisateurs de Windows (gestion des mots de passe...) et récupère uniquement les noms pour créer des connexions au serveur. Une fonctionnalité très importante de SQL Server est de pouvoir autoriser des groupes Windows à venir se connecter. La gestion des groupes permet de réaliser une administration plus souple que celle des utilisateurs. La méthode la plus simple pour gérer les connexions est de passer par la création d’un groupe local. Ce groupe local est autorisé à se connecter au serveur SQL et est utilisé par des utilisateurs ou des groupes globaux. Avec une telle méthode de fonctionnement, comme un utilisateur Windows peut appartenir à plusieurs groupes, il peut posséder plusieurs droits de connexion à SQL Server. Authentification Windows En mode sécurité Windows, seuls les noms d’utilisateurs sont stockés. La gestion des mots de passe et de l’appartenance aux différents groupes est laissée à Windows. Ce mode de fonctionnement permet de bien discerner les tâches de chacun et de spécialiser SQL Server sur la gestion des données en laissant Windows gérer les utilisateurs, ce qu’il sait bien faire. De plus avec un tel schéma de fonctionnement, il est possible d’appliquer la politique suivante : un utilisateur = un mot de passe. L’accès au serveur SQL est transparent pour les utilisateurs approuvés par Windows. SQL Server s’appuie sur les groupes auxquels appartient l’utilisateur lors de la connexion au serveur. Si des modifications d’appartenance aux groupes sont effectuées depuis Windows, ces modifications ne seront prises en compte que lors de la prochaine connexion de l’utilisateur au serveur SQL. SQL Server s’appuie sur le SID de Windows pour identifier le groupe. Si un groupe est supprimé puis recréé dans Windows, il est important de réaliser la même opération en ce qui concerne la connexion du groupe dans SQL Server. 2. Mode de sécurité Mixte Le mode de sécurité Mixte repose sur une authentification Windows puis sur une authentification SQL Server. C’est ce mode d’authentification qui va être détaillé ici. a. Définition Il s’agit du fonctionnement le plus connu pour la sécurité des serveurs de bases de données. Dans un tel mode de fonctionnement, c’est SQL Server qui se charge de vérifier que l’utilisateur qui demande à se connecter est bien défini puis il se charge également de vérifier le mot de passe. Mode de sécurité mixte Tous les utilisateurs sont entièrement gérés par SQL Server (nom et mot de passe). Ce type de gestion des connexions est bien adapté pour des clients qui ne s’identifient pas auprès de Windows. b. Principe de fonctionnement Il est trompeur de croire qu’en mode de fonctionnement Mixte seul le serveur se charge de la vérification des noms d’utilisateur et des mots de passe. Dans un premier temps, lorsqu’un utilisateur du réseau tente de se connecter au serveur SQL, un test est fait en utilisant la sécurité Windows. Si l’utilisateur du réseau est approuvé dans SQL Server, ou s’il appartient à un groupe qui est approuvé dans SQL Server, alors l’utilisateur sera connecté au serveur SQL. Dans le cas contraire (échec de la connexion en utilisant la sécurité Windows), SQL Server se charge de demander un nom de connexion et un mot de passe. 3. Base de données par défaut Après la définition des connexions (logins) au serveur, il est important de définir dans les différentes bases de données utilisateur, des utilisateurs qui correspondent à ces connexions. Les droits d’utilisation à l’intérieur de la base seront attribués aux utilisateurs de la base. Il est important également de définir pour chaque connexion ou login, une base de données par défaut. C’est sur cette base que sera positionné tout utilisateur qui utilise cette connexion. Attention à bien prendre en compte le fait que définir une base de données par défaut ne donne pas de droits d’utilisation sur cette base. 4. Comment choisir un mode de sécurité ? Il est possible de modifier le mode de sécurité utilisé par le serveur SQL directement depuis SQL Server Management Studio en allant modifier les propriétés de l’instance comme ci­après. Lors de l’installation du serveur SQL, deux connexions sont prédéfinies, en mode Windows, le groupe local des Administrateurs est autorisé à se connecter, et en mode de sécurité SQL Server, l’utilisateur sa peut se connecter au serveur. Ces deux utilisateurs possèdent des privilèges d’administrateur du serveur SQL. Il est recommandé d’utiliser la sécurité Windows qui offre une plus grande souplesse au niveau de la gestion des utilisateurs. 5. Gérer une connexion à SQL Server Étant donné qu’un utilisateur Windows peut appartenir à plusieurs groupes, il peut se voir accorder plusieurs fois le droit de connexion au serveur SQL. Ceci peut poser un problème lorsqu’un utilisateur ou un groupe d’utilisateurs ne doit jamais pouvoir se connecter au serveur SQL. Afin de remédier à ce souci, Microsoft fournit, parmi les ordres Transact SQL pour la gestion des connexions, l’ordre DENY qui permet de refuser explicitement un utilisateur ou un groupe Windows. Le DENY constitue un refus explicite et est prioritaire par rapport aux différentes autorisations de connexion. Création d’une connexion Dans le schéma ci­dessus, il y a trois utilisateurs Windows et deux groupes. Une connexion a été mise en place pour le groupe Acces2, le groupe Acces1 ne possède pas de connexion et l’utilisateur Jean est interdit de connexion. Il faut posséder une permission d’administrateur (sysadmin) ou une permission de gestionnaire de sécurité (securityadmin) pour pouvoir réaliser les uploads/Management/chapitre-3-gestion-de-la-securite-d-x27-acces 1 .pdf

  • 28
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager
  • Détails
  • Publié le Mai 11, 2021
  • Catégorie Management
  • Langue French
  • Taille du fichier 2.3020MB