SQL - Gestion des permissions
Gestion des permissions
Plusieurs personnes peuvent travailler simultanément sur une base de données, toutefois ces personnes n'ont pas forcément les mêmes besoins: certaines peuvent par exemple nécessiter de modifier des données dans la table, tandis que 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 mot de passe. Cette tâche incombe à l'administrateur de la base de données (en anglais DBA, DataBase Administrator). Il doit dans un premier temps définir les besoins de chacuns, puis les appliquer à la base de donnée sous forme de permissions. Le langage SQL permet d'effectuer ces opérations grâce à deux clauses :
- GRANT permet d'accorder des droits à un (parfois plusieurs sur certains SGBD) utilisateur
- REVOKE permet de retirer des droits à un (ou plusieurs sur certains SGBD) utilisateur
Les permissions (appelées aussi droits ou privilèges) peuvent être définies pour chaque (un grand nombre) clause. D'autre part il est aussi possible de définir des rôles c'est-à-dire de permettre à d'autre utilisateurs d'accorder des permissions.
Privilèges
Les privilèges sont les clauses qui peuvent être autorisées/retirées à un utilisateur. Les principales sont :
- DELETE: privilège de supprimer les données d'une table
- INSERT: privilège d'ajouter des données à une table
- SELECT: privilège d'accèder aux données d'une table
- UPDATE: privilège de mettre à jour les données d'une table
Droits
L'unique personne pouvant accorder ou retirer des droits sur un élément (table, vue ou index) est la personne qui l'a créé. Toutefois, il lui est possible de transmettre ce droit d'accorder/retirer des droits, auquel cas la personne recevant cet "honneur" aura le droit de transmettre ce "pouvoir" sur ces éléments