2015-07-24 1 views
2

J'ai créé une procédure stockée dans ma base de données mariaDB. Le définisseur est un utilisateur restreint qui n'a pas de privilège EXECUTE (au niveau de la base de données, de la table et des procédures).Exécution d'une procédure stockée mysql à partir du compte définisseur, sans privilèges d'exécution

Mais je peux exécuter avec succès cette procédure à partir de ce compte.

Est-ce un comportement normal, que le définisseur peut exécuter la procédure même s'il n'a pas de privilège EXECUTE?

Répondre

2

Ceci est un comportement normal. À partir du manual:

Le privilège EXECUTE est requis pour exécuter des routines stockées. Cependant, ce privilège est accordé automatiquement au créateur d'une routine si nécessaire (et abandonné par le créateur lorsque la routine est abandonnée). En outre, la caractéristique SQL SECURITY par défaut pour une routine est DEFINER, ce qui permet aux utilisateurs ayant accès à la base de données avec laquelle la routine est associée d'exécuter la routine.
+0

Merci, j'ai regardé dans la documentation mais je n'ai pas trouvé ça. Où est-ce? – galinette

+0

@galinette, la section manuelle pertinente est déjà liée à la réponse;) – vhu