I privilegi delle Stored Routine

Stai visualizzando una vecchia versione di questo article. Visualizza la versione più recente.

I privilegi delle Stored Routine e delle Stored Procedure funzionano nel modo seguente:

  • Per creare una Stored Routine, è necessario il privilegio CREATE ROUTINE.
  • Per modificare o eliminare una Stored Routine, è necessario il privilegio ALTER ROUTINE. Al creatore della Routine è temporaneamente garantito il permesso di eliminare o modificare la Routine creata, a meno che la variabile automatic_sp_privileges sia impostata a 0 (il valore predefinito è 1).
  • Per eseguire una Stored Routine, è necessario il privilegio EXECUTE. Anche questo privilegio è garantito al creatore della Routine, a meno che la variabile automatic_sp_privileges sia impostata a 0.
  • La clausola SQL SECURITY (per default DEFINER) specifica quali privilegi devono essere usati quando la Routine viene chiamata. Se SQL SECURITY è INVOKER, il corpo della funzione viene eseguito utilizzando i privilegi dell'utente che chiama la funzione. Se SQL SECURITY è DEFINER, il corpo della funzione viene sempre valutato usando i privilegi dell'account del definer. DEFINER è il default. Perciò, per default, gli utenti che accedono al database associato alla Stored Routine possono anche eseguire la Routine.
  • Il creatore di una Routine è l'account che ha eseguito l'istruzione CREATE FUNCTION o CREATE PROCEDURE, a prescindere dal fatto che la clausola DEFINER sia presente. Il definer per default è il creatore, a meno che non sia specificato diversamente.
  • Il server modifica automaticamente i privilegi nella tabella mysql.proc nel modo opportuno, ma non cerca le modifiche effettuate manualmente.

Commenti

Sto caricando i commenti......
Content reproduced on this site is the property of its respective owners, and this content is not reviewed in advance by MariaDB. The views, information and opinions expressed by this content do not necessarily represent those of MariaDB or any other party.