Qual è il punto di permettere a un utente di connettersi se non hanno la chiave per decifrare, e tutti tavoli sono criptati? Devi modificare la tua domanda per descrivere più dettagliatamente il tuo caso d'uso.
Controllare l'accesso per utente è più flessibile. Supponiamo di utilizzare la crittografia e un giorno si desidera disabilitare l'accesso per un particolare utente. Dovresti cambiare la chiave, e questo significa che devi crittografare nuovamente tutti i dati con la nuova chiave, e poi notificare a tutti gli altri utenti la chiave aggiornata. È molto sconveniente.
Mentre se si utilizza il login o loro GRANT
privilegi per controllare l'accesso, è possibile disattivare conto di ogni singolo utente e/o utilizzare REVOKE
di cambiare i loro privilegi. Tutti gli altri utenti continueranno ad avere l'accesso che hanno fatto prima. È molto più facile.
Inoltre, MySQL non dispone di un'opzione globale "criptare tutte le tabelle". Non ha nemmeno un'opzione per crittografare tutti i dati inseriti in una data tabella.
MySQL ha alcune encryption functions come AES_ENCRYPT()
ma è gestita a livello di singole espressioni SQL:
INSERT INTO MyTable
SET someColumn = AES_ENCRYPT('Something sensitive', 'thePassword');
Si dovrebbe fare questo ogni volta che si inserisce o aggiorna una riga.
Poi decifrare Allo stesso modo ogni volta che si seleziona:
SELECT AES_DECRYPT(someColumn, 'thePassword') FROM MyTable...
Qualcuno sopra menzionato crittografia MariaDB. Questo non fa quello che vuoi. Significa che il file tablespace su disco è crittografato, ma il server MariaDB lo decodifica automaticamente per chiunque si connetta al server. Quindi non è meglio dei privilegi di accesso SQL. Inoltre, non riesce a crittografare i registri delle query, i log degli errori o i registri binari.
fonte
2016-11-15 02:35:17
Sai cosa succede se cripti tutti i dati in MySQL? – Mjh
Sì, tutti i dati utente, incluse le tabelle Mysql, saranno crittografati e impediranno l'accesso all'utente. Ma sto cercando di criptare solo un database specifico. Questo è tutto quello che so, se ho sbagliato, correggimi –
Dai un'occhiata a questo esempio da MariaDB: https://mariadb.com/kb/en/mariadb/data-at-rest-encryption/ –