132
Chapitre 6 • SQL avancé
b) Privilèges sur une table ou une vue
Les principales opérations admises sur le contenu des tables sont les suivantes :
- select : extraction de données,
- insert : ajout de lignes,
- delete : suppression de lignes,
- update : modification des valeurs de certaines colonnes,
Les objets concernés sont des tables ou des vues. Rappelons que certaines opérations de modification ne sont pas valides pour certains formats de vues.
Les utilisateurs sont désignés chacun par un nom. La commande suivante autorise les utilisateurs de nom P_MERCIER et S_FINANCIERS à consulter le contenu de
la table PRODUIT et à modifier les valeurs de QSTOCK et PRIX :
grant select, update(QSTOCK,PRIX)
on
PRODUIT
to
P_MERCIER, S_FINANCIERS
Il est aussi possible de permettre au destinataire d'un privilège de transmettre celuici à d'autres utilisateurs (par une commande grant). Tel est le cas de la commande
suivante, qui en outre permet toutes les opérations possibles sur la table CLIENT :
grant all privileges
on
CLIENT
to
P_MERCIER, S_FINANCIERS
with grant option
Un privilège peut être accordé à tous les utilisateurs :
grant select
on
COM_COMPLETE
to
public
c) Privilèges sur un programme
Ce privilège permet à un utilisateur d'exécuter un programme d'application ou une
procédure qui manipule le contenu d’une base de données. Le propriétaire doit être
autorisé à transmettre certains de ses privilèges, qui lui ont donc été accordés avec
grant option. Quelques exemples :
grant run
on
SUP_DETAIL
to
public
grant run
1. En toute généralité, il faudrait ajouter à cette description le contexte spatio-temporel, qui
permettrait, par exemple, de préciser que le privilège est actif pendant les jours ouvrables, jusqu’à
une date limite, et à partir d’un terminal spécifique. Ceci n’est en principe pas pris en charge par
SQL pour l’instant. Voir cependant l’exercice 6.1.
Chapitre 6 • SQL avancé
b) Privilèges sur une table ou une vue
Les principales opérations admises sur le contenu des tables sont les suivantes :
- select : extraction de données,
- insert : ajout de lignes,
- delete : suppression de lignes,
- update : modification des valeurs de certaines colonnes,
Les objets concernés sont des tables ou des vues. Rappelons que certaines opérations de modification ne sont pas valides pour certains formats de vues.
Les utilisateurs sont désignés chacun par un nom. La commande suivante autorise les utilisateurs de nom P_MERCIER et S_FINANCIERS à consulter le contenu de
la table PRODUIT et à modifier les valeurs de QSTOCK et PRIX :
grant select, update(QSTOCK,PRIX)
on
PRODUIT
to
P_MERCIER, S_FINANCIERS
Il est aussi possible de permettre au destinataire d'un privilège de transmettre celuici à d'autres utilisateurs (par une commande grant). Tel est le cas de la commande
suivante, qui en outre permet toutes les opérations possibles sur la table CLIENT :
grant all privileges
on
CLIENT
to
P_MERCIER, S_FINANCIERS
with grant option
Un privilège peut être accordé à tous les utilisateurs :
grant select
on
COM_COMPLETE
to
public
c) Privilèges sur un programme
Ce privilège permet à un utilisateur d'exécuter un programme d'application ou une
procédure qui manipule le contenu d’une base de données. Le propriétaire doit être
autorisé à transmettre certains de ses privilèges, qui lui ont donc été accordés avec
grant option. Quelques exemples :
grant run
on
SUP_DETAIL
to
public
grant run
1. En toute généralité, il faudrait ajouter à cette description le contexte spatio-temporel, qui
permettrait, par exemple, de préciser que le privilège est actif pendant les jours ouvrables, jusqu’à
une date limite, et à partir d’un terminal spécifique. Ceci n’est en principe pas pris en charge par
SQL pour l’instant. Voir cependant l’exercice 6.1.
