Amministrazione MySQL: come creare un utente e definirne i diritti

Sommario:

Amministrazione MySQL: come creare un utente e definirne i diritti
Amministrazione MySQL: come creare un utente e definirne i diritti
Anonim

Una caratteristica di MySQL è la propria sicurezza, basata su una protezione esterna. In quanto sistema di gestione di database moderno, completo ed efficiente, MySQL dispone dei propri strumenti per la gestione degli utenti e il loro accesso alle risorse che controlla.

mysql crea utente
mysql crea utente

Se non conosci il nome utente e la password corretti, accedere al database tramite MySQL è molto difficile.

Nella normale modalità di hosting, questo è sufficiente. Situazioni impreviste, attacchi di hacker e altri problemi sono una questione di amministrazione del sistema esterno e servizi di sicurezza. Questo concetto è diventato tradizionale e praticamente non viene discusso.

Installa il server MySQL e l'utente root

In qualunque ambiente operativo sia installato il sistema di gestione del database, ha sempre almeno un utente: root. Installa MySQL, crea un utente con tutti i diritti di root - senza questo, lavora conserver non è possibile. I privilegi di questo utente sono sufficienti per:

  • crea e amministra nuovi utenti;
  • crea e gestisci database.
mysql crea un utente e assegna i diritti al database
mysql crea un utente e assegna i diritti al database

È fondamentalmente possibile che gli utenti "senza password" esistano in MySQL, ma questo è inaccettabile.

Pratica comune:

  • server installato sul proprio computer, dove è possibile installare l'hosting (opzione locale);
  • Il server è su hosting pubblico su Internet.

Nel primo caso è possibile lavorare con il server dalla riga di comando e utilizzare phpMyAdmin, nel secondo caso solo phpMyAdmin o uno strumento simile, ma è possibile accedere alla riga di comando tramite accesso SSH remoto.

Strumenti di amministrazione proprietari

Il sentimento di parentela con la famiglia Unixoid e con il passato dei server Apache è un segno distintivo di MySQL: create user è una riga di comando con una strana sintassi. Per i professionisti che lavorano con Linux e sistemi simili, questo è tanto familiare quanto selvaggio agli occhi degli utenti Windows che non sono mai "entrati nella vita reale".

La creazione di un utente inizia con l'avvio della riga di comando del server. In un ambiente Windows, questo viene fatto come segue.

mysql crea utente con tutti i diritti
mysql crea utente con tutti i diritti

Prima (1) devi eseguire la riga di comando come amministratore, quindi vai alla cartella in cui si trova MySQL (2), quindiavvia il server stesso (3):

mysql -u… -p

qui "-u…" e "-p" sono chiavi che puntano al nome "…"=root (o altro nome) e alla sua password. In linea di principio, un utente potrebbe non essere root, ma avere diritti di "root" (amministrativi).

Importante: il server in re altà è sempre in esecuzione, qui mysql -u… -p è il comando per accedere al server, non per avviarlo.

In un ambiente Linux e sistemi simili, un tale comando è un'azione "nativa" e, di regola, è determinato semplicemente avviando mysqld nel posto giusto (al percorso giusto), questo dovrebbe essere verificato con l'amministratore. Di solito qui c'è un nome diverso: non mysql, ma mysqld. Anche qui, questa azione non è sempre disponibile per tutti gli utenti (del sistema operativo, non del server MySQL). A differenza di Windows, in Linuxoids, ordine e sicurezza sono un requisito naturale e non negoziabile, che viene sempre trattato in modo civile.

In ogni caso, una volta avviato mysql, lo annuncerà con un prompt (4):

mysql>

e sarà possibile lavorare sia con gli utenti che con i database.

Nota. Quando si installa in un ambiente Windows, tutto: Apache, MySQL, PHP, phpMyAdmin può essere impostato su percorsi predefiniti, ma si consiglia di utilizzare posizioni più compatte e più vicine per questi importanti strumenti:

  • c:\SCiA\Apache;
  • c:\SCiA\PHP;
  • c:\SCiA\MySQL;
  • c:\SCiB\localhost\www\phpMyAdmin;
  • c:\SCiB\site1\www;
  • c:\SCiB\site2\www;
  • c:\SCiB\siteN\www\.

Questa logica non solo semplificherà l'amministrazione, ma amplierà anche la capacità dello sviluppatore di spostarsi tra le versioni del prodotto e gestirne le funzionalità.

Lavorare sulla riga di comando di MySQL

Una volta che il server ha risposto e fornito la sua riga di comando, gli utenti possono essere creati e assegnati permessi.

mysql crea utente per qualsiasi host
mysql crea utente per qualsiasi host

In questo esempio, il comando create user ha creato l'utente Petrov con la password 123DFG. Se viene commesso un errore durante l'immissione di un comando, il server si offre di correggerlo, ma è meglio non commettere mai errori quando si lavora sulla riga di comando!

Il seguente comando concede tutti i privilegi dà tutti i diritti su tutto. Il comando flush può essere omesso, ma "apri" il buffer dei comandi, ovvero ne corregge l'esecuzione.

MySQL: crea un utente e concedi i diritti al database

Comando usato nell'esempio:

CONCEDI TUTTI I PRIVILEGI SU. A 'Petrov'@'localhost';

Concede effettivamente all'utente Petrov l'accesso a tutti i database (primo asterisco) a tutte le tabelle (secondo asterisco).

mysql crea utente con tutti i diritti
mysql crea utente con tutti i diritti

Come regola generale di MySQL, creare un utente è:

GRANT [tipo di privilegio] ON [nome database].[nome tabella] A '[utente]'@'localhost';

Sono consentiti i seguenti privilegi:

  • TUTTI I PRIVILEGI - tutti i diritti.
  • CREATE - il diritto di creare nuove tabelle/database.
  • DROP - il diritto di eliminare tabelle/database.
  • DELETE - il diritto di cancellare le informazioni nelle tabelle.
  • INSERT - il diritto di scrivere informazioni sulle tabelle.
  • SELECT - il diritto di leggere le informazioni dalle tabelle.
  • UPDATE - il diritto di aggiornare le informazioni nelle tabelle.
  • GRANT OPTION - il diritto di lavorare con i privilegi di altri utenti.

Da un punto di vista pratico, in MySQL "creare un utente" implica tre opzioni per i diritti:

  • tutti i diritti su tutti i database e tutti gli utenti;
  • leggi e scrivi;
  • sola lettura.

Altre opzioni per la concessione dei diritti sono raramente richieste. Nell'ambiente Linux, ci sono molti più motivi per la libertà "legale" (e la necessità), ma ci sono molte più opportunità lì che in Windows.

L'operazione inversa di MySQL "crea utente" viene eliminata.

rilascia l'utente 'Petrov'@'localhost';

Dopo aver eseguito questo comando, Petrov non sarà più un utente e i suoi privilegi andranno persi. Per modificare i privilegi, usa il comando:

REVOCA [privilegio] SU [DB].[Tabella] A '[utente]'@'localhost';

L'azione usuale in MySQL è creare un utente o eliminarlo, ma anche la modifica dei privilegi è un'operazione valida (raramente richiesta).

Utilizzo di phpMyAdmin

Ci sono molte implementazioni di questo meraviglioso strumento. A seconda della versione di Apache, PHP e MySQL utilizzata, spesso ci vuole molto tempo per trovare la versione giusta di questo prodotto, ma una volta che phpMyAdmin è stato installato con successo, l'utente ha molte funzioni utili e un comodointerfaccia.

mysql crea utente per qualsiasi host
mysql crea utente per qualsiasi host

Usando phpMyAdmin, puoi dire a MySQL di creare un utente per qualsiasi host e di gestire gli utenti esistenti in modi quasi chirurgici.

phpMyAdmin non è l'unico strumento con un'interfaccia comoda, intuitiva e ricca di funzionalità, ma è lo strumento più popolare per l'amministrazione di server MySQL.

Informazioni sulla riga di comando e sulla sicurezza

Ovviamente, l'utilizzo della riga di comando di MySQL è un esercizio poco attraente, ma va tenuto presente che in alcuni casi solo la riga di comando del server può salvare il database o l'utente, garantire l'importazione o l'esportazione di informazioni.

mysql crea utente per qualsiasi host
mysql crea utente per qualsiasi host

Le versioni del software si stanno evolvendo così velocemente che gli sviluppatori semplicemente non hanno il tempo di combinare le funzionalità, ad esempio, di PHP e MySQL, MySQL e phpMyAdmin. Se succede qualcosa, la riga di comando salverà sempre la situazione.

Non bisogna mai dimenticare: l'amministrazione di MySQL riguarda solo l'accesso ai suoi database e le sue funzionalità. I file di database sono aperti per l'accesso al di fuori di MySQL. La protezione esterna di MySQL e delle risorse che controlla è un'esigenza reale e importante.

Consigliato: