C'est une mauvaise idée d'utiliser DDL (comme GRANT ) dans les procédures stockées.
Vous devrez utiliser le SQL dynamique (EXECUTE IMMEDIATE ) pour le faire, mais honnêtement, je ne vois pas pourquoi voudriez-vous faire cela dans une procédure stockée.