Gestion de la sécurité sous SQL Server I. Les différents modes de sécurité d’ac
Gestion de la sécurité sous SQL Server I. Les différents modes de sécurité d’accès de SQL Server SQL Server dispose d’un système de sécurité qui lui est propre. Nous savons d’autre part que Windows dispose également de son système de sécurité à travers les comptes utilisateurs. SQL Server permet de fédérer (ou non) ces deux systèmes et propose deux modes d’accès : Le mode de sécurité intégrée qui utilise la sécurité de Windows. De ce fait, les utilisateurs conservent un seul nom d’accès et un seul mot de passe pour Windows et SQL Server. Le mode de sécurité mixte (sécurité SQL Server ou Windows). Dans ce cas l’utilisateur peut se connecter au serveur SQL à partir de son compte Windows ou de son nom d’accès SQL qui peut alors être différent. Pour choisir un mode de sécurité : Click droit sur le nom du serveur…Propriétés…Onglet Sécurité L’utilisateur sa est un utilisateur intégré à SQL server qui possède tous les pouvoirs (System Admin). Pour changer son mot de passe, voici la procédure, très simple : C:\Program Files\Microsoft SQL Server\80\Tools\Binn en ligne de commande OU cmd / sqlcmd sp_password null, 'nouveau_mot_de_passe', 'sa' go exit II. Principe de fonctionnement de la sécurité Pour utiliser une base de données sur un serveur, il faut : 1. avoir la permission d’accéder à ce serveur (chaque utilisateur doit posséder un nom d’accès au serveur appelé nom de connexion) 2. avoir la permission d’accéder à la base de données (chaque utilisateur doit posséder un nom d’utilisateur de la base de données) 3. Chaque utilisateur de la base de données se verra attribuer des autorisations lui permettant de manipuler les différents objets de la base (table, vue, procédures stockées,…). Les utilisateurs disposant d’un statut spécial On distingue trois utilisateurs particuliers : L’administrateur de SQL Server qui a pour nom d’accès sa. Il dispose de tous les droits et n’a donc pas de nom d’utilisateur pour les bases de données. Le créateur d’une base de données appelé également propriétaire de la base ou DBO (Data Base Owner). Il dispose de l’intégralité des permissions sur cette base. Le créateur d’un objet dans une base de donnée (table, vue, procédure stockée, déclencheur,…) devient le propriétaire de cet objet (DBOO) et dispose de toutes les permissions sur cet objet. Accès à un serveur SQL Server par authentification Windows Le nom de connexion à un serveur SQL Server correspond au nom du compte Windows SQL Server n’est accessible qu’à partir de la validation d’ouverture de session. Il est possible d’utiliser le nom d’un groupe comme nom de connexion à un serveur SQL Server. Dans ce cas, tous les membres du groupe auront accès au serveur SQL sans avoir de nom de connexion personnel. MH MALHIERE Sécurité sous SQL Server Page 1 Exemple : Le nom du groupe "Etudiants825" (classe de STS IG 1ère année) est utilisé comme nom de connexion au serveur SQL Server. Chaque étudiant de cette classe accède à SQL Server car son compte fait partie du groupe " Etudiants825". Dans la base système "Master" sont stockés tous les noms de connexion et les mots de passe associés. À chaque compte de connexion correspond un identifiant "sid" qui est utilisé par le système pour le relier au nom d’utilisateur dans une base. Toutes les connexions sont inscrites dans la base MASTER (table Syslogins) Créer une connexion à SQL Server Se positionner sur le nœud Sécurité-connexions-Menu contextuel Nouvelle connexion Remarque : Il faut posséder une permission d’administrateur (sysadmin) ou une permission de gestionnaire de sécurité (sécurityadmin) pour pouvoir réaliser les différentes opérations relatives à la gestion des connexions. Accès à une base de données Une fois l’accès au serveur SQL Server obtenu, un nom d’utilisateur dans la base doit correspondre à un nom de connexion. La base de données "cible" contient tous les noms des utilisateurs. Un nom d’utilisateur détermine de manière unique un nom de connexion stocké dans la base "Master". Accès aux objets d’une base de données Il existe deux types d’autorisations. Les autorisations d’instruction qui permettent principalement de créer des objets : - création d’une base de données, - création de tables, de vues dans une base, - création de procédures stockées… Les autorisations sur les objets existants qui permettent de manipuler les objets : Insert, Update, Delete, Select,… Par défaut, une fois l’accès à la base obtenu, l’utilisateur n’a pas encore d’autorisation sur la base. Seuls l’administrateur et le propriétaire de la base peuvent donner des droits. Ils peuvent les attribuer soit directement aux utilisateurs, soit à des rôles. Un rôle est l’équivalent d'un groupe : son but est de regrouper les utilisateurs afin de définir des autorisations à des groupes d'utilisateurs ayant les mêmes besoins, plutôt qu'à des individus. III. Les rôles Les rôles regroupent des ensembles d’autorisations. Il est préférable d’attribuer des autorisations à des rôles puis d’attribuer les rôles aux utilisateurs. III.1 Rôle du serveur Ce sont des rôles prédéfinis Nom Nom complet Description bulkadmin Bulk Insert Administrators Peut procéder à une opération d'insertion en bloc. dbcreator Database Creators Possibilité de créer et de modifier les bases de données. diskadmin Disk Administrators Possibilité de gérer les fichiers disque. processadmin Process Administrators Possibilité de gérer les traitements s'exécutant sous SQL Server. MH MALHIERE Sécurité sous SQL Server Page 2 securityadmin Security Administrators Possibilité de gérer les connexions pour le serveur. serveradmin Server Administrators Possibilité de configurer les paramètres à l'échelle du serveur. setupadmin Setup Administrators Possibilité de gérer les procédures stockées étendues. sysadmin System Administrators Possibilité d'effectuer toute activité dans l'installation de SQL Server Accorder un rôle avec SQL Server Management Studio Pour attribuer un rôle serveur à une connexion : Menu contextuel Propriétés de la connexion…Onglet Rôle du serveur Cocher le ou les rôles de serveur attribués à cette connexion MH MALHIERE Sécurité sous SQL Server Page 3 III.2 Rôles de base de données III.2.1 Rôles prédéfinis Il existe des rôles prédéfinis et il est possible de définir ses propres rôles Le rôle public est un rôle prédéfini, bien particulier, car tous les utilisateurs de la base possèdent ce rôle. Ainsi, lorsqu’une autorisation d’instruction ou d’objet est accordée, supprimée ou interdite à public, instantanément tous les utilisateurs de la base bénéficient des modifications. Le rôle public contient toutes les autorisations par défaut dont bénéficient les utilisateurs de la base. A part le rôle public il existe des rôles prédéfinis dans la base de données. Rôle de base de données fixe Description db_owner Possède toutes les autorisations de la base de donnéescomme le propriétaire de la base. db_accessadmin Peut ajouter ou supprimer des utilisateurs dans la base. db_securityadmin Peut gérer toutes les autorisations, les propriétés d'objet, les rôles et les membres des rôles. db_ddladmin Permet d’ajouter (CREATE), modifier (ALTER) ou supprimer (DELETE) des objets de la base de données db_backupoperator Permet d’effectuer des sauvegardes de la base de données. db_datareader Peut sélectionner toutes les données de toutes les tables utilisateur dans la base de données. db_datawriter Peut modifier les données de toutes les tables utilisateur dans la base de données. db_denydatareader Interdit la visualisation des données de la base. db_denydatawriter Interdit la modifiaction des données de la base. III.2.2 Les rôles définis par l’utilisateur On peut définir ses propres rôles à l’intérieur d’une base de données. Intérêt : Lorsque des utilisateurs authentifiés par SQL Server et des utilisateurs authentifiés par Windows doivent partager les mêmes droits. Les rôles peuvent être accordés soit directement à un utilisateur soit à un autre rôle. Créer un rôle défini par l’utilisateur Se positionner sur Sécurité-Rôles-Rôles de la base de données Donner un nom de rôle et un sélectionner le propriétaireDans l’onglet Eléments sécurisables Ajouter un élément sécurisable Sélectionner les types d’objets que vous souhaitez sécurisés, cliquez sur parcourir et cocher les dans la liste fournie Cocher ensuite les autorisations Remarque : Un rôle ne peut être supprimé que s’il ne contient aucun membre III.2.3 Rôles d’application Les rôles d’application sont des rôles définis au niveau de la base de données sur laquelle ils portent. Le but est de permettre à tous les utilisateurs d’une application de posséder suffisamment de droits pour le bon déroulement de l’application où les opérations sur la base de données sont contrôlées par le programme client. Les rôles d’application permettent d’obtenir un comportement standard de l’application quel que soit l’utilisateurs Windows qui lance l’application. Le principe reste le même que pour les autres rôles mais en plus, on affecte un mot de passe. Remarque : pour modifier le mot de passe d’un rôle, il faut être membre du rôle db_owner ou db_securityadmin. MH MALHIERE Sécurité sous SQL Server Page 4 IV. Gestion des utilisateurs des bases de données IV.1 Créer un utilisateur d’une base de données Se positionner sur Sécurité-Utilisateur –Menu contextuel Nouvel utilisateur Donner un nom utilisateur et choisissez dans nom d’accès la connexion à laquelle il se rapporte Les utilisateurs de base de données sont stockés dans la table système sysusers de la base de données sur laquelle l’utilisateur est défini. IV.2 Gestion des autorisations des utilisateurs Il faut attribuer des autorisations uploads/Management/ gestion-de-la-s-curit-sous-sql-server.pdf
Documents similaires
-
23
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Jul 04, 2022
- Catégorie Management
- Langue French
- Taille du fichier 0.2258MB