Home Hardware Networking Programmazione Software Domanda Sistemi
Conoscenza del computer >> Programmazione >> PHP /MySQL Programmazione >> .

Come si crea un utente pubblico che richiede la password per visualizzare il database in MySQL?

Ecco come creare un utente pubblico in MySQL con autenticazione password, in particolare per l'accesso di sola lettura a un database:

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

Immettere la password di root quando richiesto

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