Getsuyodev, Programming is mainly used when constructing an application. Programming requires knowledge of application domains, algorithms, and programming language expertise. Programming can be developed in different logic based on developer knowledge.

SGBD – SQL Initiation à la sécurisation

Système de gestion de base de données



Introduction:

Il s’agit ici d’une initiation, ces problématiques de sécurisation des bases de données faisant appel à des compétences particulières hors champ d’étude.

La sécurité est gérée à plusieurs niveaux comme le montre le schéma ci-dessous.

Gestion des connexions et utilisateurs:

Plusieurs personnes sont amenées à travailler simultanément sur une base de données mais elles n’ont n’ont pas nécessairement les mêmes besoins:

  • Certaines peuvent par exemple nécessiter de modifier des données dans la table
  • Les autres ne l’utiliseront que pour la consulter

Ainsi, il est possible de définir des permissions pour chaque personne en leur octroyant un profil de connexion.

La sécurité des bases de données peut être classée en deux catégories:

  • La sécurité du système
  • La sécurité des données
  • La sécurité du système couvre l’accès à l’utilisation du système.
  • La sécurité de base de données couvre l’accès aux objets de la base de données et leur utilisation, ainsi que les actions exécutées sur ces objets par les utilisateurs.

Les profils de connexion:

Les profils de connexion sont définis au niveau d’un serveur et permettent d’autoriser ou d’exclure la connexion d’un utilisateur.

Deux mécanismes sont mis en œuvre :

  • L’autorisation de profils utilisateurs ou de groupe Windows approuvés par un contrôleur de domaine de Windows Server
  • La gestion de profils internes à SQL Server

Création d’une connexion par T-SQL :

Les Utilisateurs de bases de données :

  • Après avoir créé un compte, identité de serveur, vous devez créer des utilisateurs apparentés, également appelés identités de base de données, pour permettre aux utilisateurs d’accéder aux bases de données du serveur.
  • Les identités de bases de données sont associées aux identités de serveur.

La requête suivante permet de créer un utilisateur de base de données dans la base VolAvion. Celui-ci utilisera par défaut le schéma dbo du propriétaire de la base de données. Nous verrons dans le chapitre suivant cette notion de schéma.

Les rôles:

  • Un rôle est un groupe nommé de privilèges qui peut être accordé à un utilisateur.
  • Cette méthode facilite l’octroi et le retrait des privilèges.
  • Un utilisateur peut avoir accès à plusieurs rôles, et le même rôle peut être attribué à plusieurs utilisateurs.
  • Les rôles peuvent être fixes ou d’application, de serveurs ou de bases de données.
Les rôles fixes de serveur:

Un rôle fixe de serveur est attribué à une connexion et détermine les privilèges d’un utilisateur au niveau du système. Le tableau ci-dessous permet de visualiser l’ensemble de ces rôles fixes de serveur.

Pour ajouter un membre (login) à un rôle vous pouvez utiliser l’interface de la console ou utiliser la procédure stockée suivante :

sp_addsrvrolemember [ @loginame= ] 'login' , [ @rolename = ] 'role'

Il est attribué à un utilisateur d’une base de données pour déterminer les droits dont il disposera au travers de ce rôle sur les objets de cette base de données.

Pour ajouter un utilisateur (login) à un rôle fixe de base de données vous pouvez utiliser l’interface de la console ou utiliser la procédure stockée suivante :

sp_addrolemember [ @rolename = ]
'role',[ @membername = ] 'security_account'

Les schémas:

  • À compter de la version SQL Server 2005, chaque objet appartient à un schéma de base de données.
  • Un schéma de base de données est un espace de noms distinct qui est indépendant d’un utilisateur de base de données.
  • Vous pouvez considérer un schéma comme un conteneur d’objets.
  • Les schémas peuvent être créés et modifiés dans une base de données, et les utilisateurs peuvent se voir accorder l’accès à un schéma.
  • Un schéma peut appartenir à n’importe quel utilisateur, et sa propriété est transférable.

Un schéma permet donc de regrouper logiquement des objets comme une seule et même entité et de lui accorder des droits et autorisations plutôt que de les accorder à des utilisateurs.

On crée une table TestSchema avec l’utilisateur Vincent_U et vérifier que cette fois nous y accédions bien.

Pour cela on doit autoriser à Vincent_U à créer des tables:

Octroi et retrait d’autorisations:

  • Il est possible d’octroyer ou de refuser des privilèges aux utilisateurs.
  • Différents privilèges sont disponibles pour les différents types d’objets de schéma.
  • Un utilisateur bénéficie automatiquement de tous les privilèges objet pour les objets contenus dans son schéma.
  • L’instruction GRANT permet d’octroyer des autorisations, REVOKE de retirer des autorisations accordées, et DENY d’interdire une opération.
  • Un utilisateur peut accorder un privilège lié à un objet du schéma qui lui appartient à un autre utilisateur ou à un rôle.
  • L’instruction GRANT permet d’octroyer des autorisations, REVOKE de retirer des autorisations accordées, et DENY d’interdire une opération.

Si l’octroi inclut le mot-clé GRANT OPTION, le bénéficiaire peut à son tour accorder le privilège objet à d’autres utilisateurs ; sinon, il peut exploiter ce privilège mais ne peut pas le transmettre.

Il est possible d’octroyer tous les privilèges objet avec ALL mais cela est déconseillé et ne figure encore que pour des questions de compatibilité avec les versions antérieures.

  • Pour accorder des privilèges sur un objet, il doit se trouver dans votre propre schéma ou les privilèges objet doivent vous avoir été accordés avec le mot-clé WITH GRANT OPTION.
  • Le propriétaire d’un objet peut accorder un privilège lié à cet objet à un autre utilisateur ou à un rôle de la base de données.
  • Le propriétaire d’un objet acquiert automatiquement tous les privilèges de l’objet.

Comments are closed, but trackbacks and pingbacks are open.

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More