example - Requisiti minimi di GRANT necessari a mysqldump per scaricare uno schema completo?(Mancano i TRIGGER !!)




mysqldump all databases (2)

Ho un utente MySQL chiamato dump con i seguenti perms:

GRANT USAGE ON *.* TO 'dump'@'%' IDENTIFIED BY ...
GRANT SELECT, LOCK TABLES ON `mysql`.* TO 'dump'@'%'
GRANT SELECT, LOCK TABLES ON `myschema`.* TO 'dump'@'%'

Voglio scaricare tutti i dati (inclusi trigger e procedure) usando l'utente di dump . Chiamo mysqldump nel modo seguente:

mysqldump -u dump -p --routines --triggers --quote-names --opt \
    --add-drop-database --databases myschema > myschema.sql

Tutto è OK con il file scaricato tranne che per i trigger, mancano !!

I trigger vengono scaricati correttamente se provo mysqldump con l'utente root di MySQL:

mysqldump -u root -p --routines --triggers --quote-names --opt \
    --add-drop-database --databases myschema > myschema.sql

Quindi, immagino che sia un problema di permanenti ... quali sono le sovvenzioni extra che il mio utente di MySQL di discarica ha bisogno per eseguire correttamente il dump completo?


Ho scoperto che prima o poi l'utente VIEW DEFINER non esiste, il dump fallisce.

Cambialo, come descritto there


Ho trovato l'ulteriore concessione di cui avevo bisogno !!

  GRANT TRIGGER ON `myschema`.* TO 'dump'@'%'

Qui hai il riferimento sul documento ufficiale: http://dev.mysql.com/doc/refman/5.5/en/privileges-provided.html#priv_trigger

Il privilegio TRIGGER abilita le operazioni di trigger. È necessario disporre di questo privilegio per una tabella per creare, eliminare o eseguire trigger per quella tabella.







grant