2010-10-05 24 views
15

Come posso creare una sola tabella in mysql in lettura solo per un utente mentre ha ancora accesso in scrittura ad altre tabelle nello stesso db?Crea una sola tabella in mysql di sola lettura

Ulteriori informazioni

  • ho accesso root al server
  • tabelle MyISAM sono
  • versione Server è 5.0.51a-24 + lenny2

grazie!

risposta

6

Revoca tutti i privilegi precedenti e quindi concedere le nuove specifiche privilegi:

REVOKE ALL ON db.table FROM user; 
REVOKE ALL ON db.othertable FROM user; 
GRANT SELECT ON db.table TO user; 
GRANT SELECT, INSERT, UPDATE, DELETE ON db.othertable TO user; 
+3

Se questo utente ha già "TUTTI I PRIVILEGI" in questa tabella devo revocare quelli e assegnare i privilegi individuali tavolo su ogni tavolo o posso ignorare i privilegi sul tavolo singolo con solo SELECT? – ChrisR

+1

@chris domanda valida. tuttavia, provare semplicemente questo dovrebbe essere una questione di secondi;) – sfussenegger

+3

Vero ma non sono davvero desideroso di provare questo sul database live e l'impostazione di un database di test con gli stessi dati non è questione di secondi :) Farò testarlo, vediamo quanto velocemente posso ottenere un mirror locale del live db :) – ChrisR

3

È possibile effettuare una singola tabella MyISAM sola lettura comprimendo il tavolo. Utilizzare myisampack sulla riga di comando per imballare la tabella.

Maggiori informazioni si possono trovare nel manuale di MySQL: http://dev.mysql.com/doc/refman/5.0/en/myisampack.html