1. Connettiti a Mysql come utente privilegiato:
Innanzitutto, devi connetterti al tuo server MySQL come utente con privilegi amministrativi (come `root`). Usa il client MySQL:
`` `Bash
mysql -u root -p
`` `
Immettere la password di root quando richiesto.
2. Crea l'utente:
Utilizzare l'istruzione "Crea utente" per creare il nuovo utente. Sostituisci `'public_user'` e`' your_password '`con il nome utente e la password desiderati. La clausola `identificata per imposta la password dell'utente. Il "%" significa da qualsiasi host.
`` `sql
Crea l'utente 'public_user'@'%' identificato da 'your_password';
`` `
Nota di sicurezza importante: L'uso di `'%'` consente all'utente di connettersi da * qualsiasi * host. Questo spesso * non * una buona idea per motivi di sicurezza. Se sai che l'utente si collegherà solo da un indirizzo IP o un nome host specifico, sostituire `'%'` con quell'indirizzo (ad esempio, `'public_user'@'192.168.1.100' 'o` `public_user'@'yourdomain.com'`). Per esempio:
`` `sql
Crea l'utente 'public_user'@'192.168.1.100' identificato da 'your_password';
`` `
Ciò consentirebbe solo all'utente di connettersi dall'indirizzo IP `192.168.1.100`.
3. Grant Privilegi di sola lettura:
Utilizzare la dichiarazione `Grant` per dare all'utente l'accesso di sola lettura al database specifico. Sostituisci `your_database` con il nome del database a cui si desidera concedere l'accesso.
`` `sql
Concedi seleziona su your_database.* A 'public_user'@'%';
`` `
* `Select`:consente all'utente di leggere i dati dalle tabelle nel database.
* `your_database.*`:Specifica che il privilegio si applica a tutte le tabelle all'interno di `your_database`.
* `A 'public_user'@'%'`:Specifica l'utente e l'host per i quali è concesso il privilegio.
4. Privilegi a filo:
Dopo aver concesso i privilegi, è necessario eliminare le tabelle dei privilegi per far entrare le modifiche.
`` `sql
Privilegi a filo;
`` `
5. Esci Mysql:
`` `sql
Uscita;
`` `
Esempio completo:
`` `Bash
mysql -u root -p # connettiti come root
Crea utente 'public_user'@'%' identificato da 'mysecurepassword123!';
Concedi seleziona su your_database.* A 'public_user'@'%';
Privilegi a filo;
Uscita;
`` `
Spiegazione e considerazioni importanti:
* `Crea utente`: Crea un nuovo account utente MySQL.
* `Grant`: Assegna autorizzazioni specifiche (privilegi) a un utente.
* `Flush Privileges`: Ricarica le tabelle delle sovvenzioni. Questo è * essenziale * dopo aver apportato modifiche ai privilegi degli utenti; Altrimenti, le modifiche potrebbero non avere effetto immediatamente.
* `Identificato da ': Imposta la password dell'utente. Scegli una password forte!
* Best practice di sicurezza:
* Accesso all'host limite: Come accennato, evitare di usare `'%'` per l'host, se possibile. Limitare l'utente a connettersi solo da indirizzi IP noti e affidabili.
* Principio del minimo privilegio: Concedere solo i privilegi minimi di cui l'utente ha bisogno. In questo caso, `Select` è sufficiente per l'accesso di sola lettura. Evita di concedere `tutti i privilegi 'se non assolutamente necessari.
* Complessità della password: Imporre politiche di password forti. Usa un mix di lettere, numeri e simboli maiuscola e minuscola. Prendi in considerazione l'utilizzo del plug -in di convalida della password di MySQL per l'applicazione della password più forte.
* ssl/tls: Per gli ambienti di produzione, crittografare sempre le connessioni tra il client e il server MySQL utilizzando SSL/TLS per proteggere la password e i dati trasmessi sulla rete.
* Privilegi alternativi: Invece di concedere `select` sull'intero database (` your_database.*`), Puoi concedere` selezionare` solo su tabelle specifiche:
`` `sql
Concedi selezionare su your_database.table1 a 'public_user'@'%';
Concedi seleziona su your_database.table2 a 'public_user'@'%';
`` `
Questo è ancora più sicuro, in quanto limita l'accesso solo alle tabelle necessarie.
* Auditing: Considera di abilitare la registrazione di audit di MySQL per tenere traccia di chi accede al database e quali domande stanno eseguendo.
Connessione con il nuovo utente:
Per connettersi utilizzando il nuovo utente:
`` `Bash
mysql -u public_user -p -h yor_mysql_host -d your_database
`` `
* `-u public_user`:specifica il nome utente.
* `-p`:richiede la password.
* `-H your_mysql_host`:specifica il nome host o l'indirizzo IP del server MySQL. Se si collega dalla stessa macchina, è spesso possibile omettere questo o utilizzare `localhost` o` 127.0.0.1`.
* `-D your_database`:specifica il database a cui connettersi.
Dopo aver eseguito questo comando, ti verrà richiesto di inserire la password di `public_user`.
Seguendo questi passaggi e considerando i consigli di sicurezza, è possibile creare un utente pubblico con accesso di sola lettura al tuo database MySQL in modo sicuro e controllato. Dai la priorità sempre alla sicurezza quando si concede l'accesso ai dati.
Programmazione © www.354353.com