2012-11-21 10 views
8

sto cercando di via scheda SQL all'interno del phpmyadmin per creare/importare una vista come questa:CREATE VIEW senza privilegi di super in phpMyAdmin

CREATE ALGORITHM=UNDEFINED DEFINER=`byname`@`localhost` SQL SECURITY DEFINER VIEW `wr_averages` AS select `nf_users`.`id` AS `id`,(`nf_users`.`points`/`nf_users`.`played`) AS `average_points` from `nf_users` where (`nf_users`.`played` > 24); 

ottengo questo errore:

#1227 - Access denied; you need the SUPER privilege for this operation 

posso non ottenere i privilegi SUPER presso la mia società di hosting, quindi c'è comunque un modo per aggirare questo?

Grazie in anticipo :-)

+0

No, non puoi andare in giro. –

+0

Un altro modo in cui credo possa essere fatto è creare una vista di prova nel database che si sta utilizzando. Esportare la vista di test e vedere il nome utente e utilizzarlo. – madi

+0

Controllare il definitore, non dovrebbe essere 'username @ localhost' a meno che non sia esplicitamente necessario, ma' username @% ' –

risposta

11

Dalla documentazione:

Se si specifica la clausola DEFINER, non è possibile impostare il valore a qualsiasi utente, ma proprio se non si ha il privilegio SUPER. Queste regole determinano i valori utente DEFINER legali:

  • * Se non avete il privilegio SUPER, l'unico valore legale utente è il proprio account, sia specificato letteralmente o utilizzando CURRENT_USER. Non è possibile impostare il definitore su un altro account. *
  • Se si dispone del privilegio SUPER, è possibile specificare qualsiasi nome dell'account legale sintatticamente. Se l'account non esiste realmente, viene generato un avviso.

controllare il tuo conto di MySQL, non è byname @localhost.

Solutions:

  • Crea nuova vista con clausola DEFINER utilizzando l'account che ha concesso con il privilegio SUPER.
  • Non utilizzare la clausola DEFINER in CREATE VIEW, in questo caso MySQL creerà la vista DEFINER = CURRENT_USER.
+0

In termini più semplici, definer non dovrebbe essere' username @ localhost' se non esplicitamente necessario, ma 'username @%' –

Problemi correlati