Table des matières:
- Notions de base des privilèges d'objet dans Oracle 12c
- Gestion des privilèges d'objet dans Oracle 12c
Vidéo: COURS SQL [Tuto 14]- COMMIT et ROLLBACK 2024
déterminer. Un type de privilège dans Oracle 12c est o privilèges d'accès qui contrôlent l'accès et la modification des données.
Notions de base des privilèges d'objet dans Oracle 12c
Vous ne pouvez accorder que huit privilèges d'objet:
-
SELECT permet au destinataire de sélectionner des lignes dans les tables
-
INSERT .
-
UPDATE permet au destinataire de modifier les lignes existantes dans les tables.
-
DELETE permet au destinataire de supprimer les lignes existantes des tables.
-
REFERENCES permet à un utilisateur de créer une vue ou une clé étrangère dans la table d'un autre utilisateur.
-
INDEX permet à un utilisateur de créer un index dans la table d'un autre utilisateur.
-
ALTER permet à un utilisateur de modifier ou d'ajouter à la structure de la table d'un autre utilisateur.
-
EXECUTE permet au destinataire d'exécuter des procédures appartenant à un autre utilisateur.
Gardez ces points de privilège à l'esprit:
-
Lorsque vous possédez un objet, vous avez automatiquement tous les droits sur cet objet. En d'autres termes, vous n'avez pas besoin d'obtenir SELECT sur votre propre table.
-
Les privilèges d'objet ne peuvent pas être révoqués par le propriétaire d'un objet.
-
Quel que soit le schéma propriétaire de l'objet, il contrôle en fin de compte les privilèges de cet objet.
-
Sans autorisation expresse, personne d'autre ne peut gérer les privilèges d'objet de cet objet - eh bien, personne sauf un utilisateur qui pourrait avoir le privilège système GRANT ANY OBJECT (habituellement réservé aux DBA).
-
Le privilège d'objet ne peut être révoqué par personne d'autre que la personne qui l'a accordé, sauf pour une personne ayant le privilège GRANT ANY OBJECT. Même le propriétaire ne peut pas révoquer un privilège sur son propre objet à moins d'être le concédant.
Gestion des privilèges d'objet dans Oracle 12c
Dans les étapes suivantes, les utilisateurs MAGGIE, JASON et MATT travaillent dans une base de données contenant des recettes. Cet exemple utilise les privilèges d'objet pour leur permettre d'afficher et d'ajouter plus de recettes.
-
Maggie se connecte.
-
Maggie saisit ce qui suit:
Ceci permet à l'utilisateur MAGGIE de permettre à JASON de sélectionner dans sa table VEGETARIAN_RECIPES. Elle voit ceci:
Grant a réussi.
Semblable à WITH ADMIN OPTION des privilèges système, les privilèges d'objet ont quelque chose appelé WITH GRANT OPTION.
-
MAGGIE peut autoriser JASON à INSÉRER dans sa table et autoriser JASON à transmettre ce privilège:
-
JASON peut transmettre ce privilège INSERT à MATT:
-
MAGGIE ne peut pas révoquer le privilège INSERT de MATT. Elle doit demander à JASON de le faire.
-
Si JASON refuse de révoquer les privilèges INSERT pour MATT, MAGGIE peut révoquer le privilège de JASON et, à son tour, le retirer de MATT. C'est ce qu'on appelle une révocation en cascade . Notez que ceci est différent des privilèges système.
-
MAGGIE peut révoquer le privilège INSERT de JASON et, en attendant, les révoquer automatiquement de MATT:
Elle voit ceci:
Revoke a réussi.
Si un utilisateur souhaite voir quel privilège il a donné, il peut interroger la vue USER_TAB_PRIVS.
Par exemple, MAGGIE peut voir quels sont les privilèges laissés par JASON sur ses objets:
Elle voit quelque chose comme ceci:
PROPRIÉTAIRE DE LA BÉNÉFICIAIRE NOM_DOMAINE PRIVILÈGE DU GRANTOR ---------- ----- ----- ------------------ ---------- ---------- JASON MAGGIE VEGETARIAN_RECIPES MAGGIE SELECT >