2012-06-21 18 views
10

Ho riscontrato un problema durante l'eliminazione di una tabella temporanea. L'account utente non ha il privilegio di "rilascio". Non voglio concedere questo privilegio per motivi di sicurezza. Ho provato a trovare un privilegio come "rilascia temporaneamente" ma non c'è. Sembra che l'unica opzione sia rimuovere tutte le istruzioni 'drop table'. So che le tabelle temporanee verranno automaticamente eliminate dopo la fine delle sessioni DB. Tuttavia, non sono sicuro se ci sono effetti collaterali che lasciano questo lavoro a MySQL. Per favore, consiglio.È necessario eliminare tabelle temporanee in mysql?

+0

Come accennato qui, http://dev.mysql.com/doc/refman/5.1/en/privileges-provided.html#priv_create-temporary-tables _To mantenere i privilegi per la temporanea e tabelle non temporanee separate, una soluzione comune per questa situazione è creare un database dedicato all'uso di tabelle temporanee. Quindi per quel database, a un utente può essere concesso il privilegio CREATE TEMPORARY TABLES, insieme a qualsiasi altro privilegio richiesto per le operazioni temporanee della tabella eseguite da tale utente. – Lucky

risposta

15

Le tabelle temporanee vengono eliminate automaticamente non appena si disconnette dal database

una tabella temporanea è visibile solo per la connessione corrente, e si interrompe automaticamente quando la connessione è chiusa

http://dev.mysql.com/doc/refman/5.1/en/create-table.html

Quindi - crearli, utilizzare e non disturbare la loro cancellazione

+1

Se si utilizza un pool di connessione (hikari, c3p0, ecc.), Allora le connessioni sarà probabilmente aperto più a lungo di quanto ti aspetteresti, quindi fai attenzione. In questo caso potrebbe essere opportuno abbandonare manualmente tabelle temporanee. – Alden

+1

@Alden ha senso configurare correttamente il software in modo che tutto funzioni come previsto. I creatori di pool di connessioni devono reimpostare la connessione sulla disconnessione del client. – zerkms

0

Utilizzerà lo spazio Ram della macchina corrente. Quindi l'idea migliore è rilasciare la tabella temporanea sul passaggio successivo, una volta esaurito il suo utilizzo

Problemi correlati