CODE RETOUR -556

revoke-target CANNOT HAVE THE privilege PRIVILEGE object-name REVOKED BY revoker-id BECAUSE THE REVOKEE DOES NOT POSSESS THE PRIVILEGE OR THE REVOKER DID NOT MAKE THE GRANT

Explication
L’instruction REVOKE n’a pas réussi.

revoke-target
L’ID d’autorisation contre lequel la tentative de révocation a été effectuée.
privilege
Le nom du privilège qui devait être révoqué.
object-name
Nom de l’objet auquel s’applique le privilège.
revoker-id
L’ID d’autorisation qui a tenté de révoquer le privilège.

Si vous utilisez un contexte approuvé, les jetons revoke-target et revoker-id peuvent renvoyer un rôle au lieu d’un ID d’autorisation. Un rôle est renvoyé si un rôle était en vigueur et la vérification d’autorisation est effectuée par rapport au rôle, plutôt qu’à l’ID d’autorisation de la session, lorsque la condition a été rencontrée. Sinon, un ID d’autorisation est renvoyé. Un rôle est renvoyé au format suivant sous la forme d’un jeton unique :

ROLE : role-name

L’échec d’une tentative de révocation est généralement causé par une ou plusieurs des conditions suivantes :

  • L’ID d’autorisation qui était la cible de l’instruction REVOKE, revoke-target, ne possède pas le privilège qui devait être révoqué.
  • L’ID d’autorisation de révocation, revoker-id, n’a pas explicitement accordé le privilège de revoke-target. Un ID autorisation ne peut révoquer que les privilèges qu’il a explicitement accordés à d’autres ID autorisation, à moins que l’ID autorisation ne dispose des droits SECADM ou ACCESSCTRL et spécifie la clause BY.
  • L’ID d’autorisation revoke-target est le propriétaire de l’objet spécifié. Aucun ID d’autorisation, pas même SECADM, ne peut révoquer les privilèges sur un objet du propriétaire de l’objet.
  • Si le privilège est *** : le mot-clé ALL a été utilisé dans l’instruction REVOKE, mais revoke-target ne possédait aucun privilège de révocation.
  • Si revoker-id est ALL : la clause BY ALL a été utilisée dans l’instruction REVOKE, mais revoke-target ne possédait aucun privilège de révocation.
  • Si revoker-id détient les droits SECADM ou ACCESSCTRL : la clause BY peut avoir été omise de l’instruction REVOKE.

Action du système
L’instruction n’a pas été exécutée. Aucun privilège n’a été révoqué d’aucun ID d’autorisation.

Réponse du programmeur
Consultez les tables de catalogue d’autorisations appropriées pour vérifier que revoke-target possède le privilège à révoquer. Émettez une requête avec GRANTEE défini sur la valeur dans revoke-target et la colonne de privilège n’est pas égale aux blancs. Corrigez et relancez l’instruction REVOKE.

SQLSTATE
42504