Dall'autore: Ti consiglierei di stare attento con i privilegi. Un mio conoscente, che ha diritti di amministratore nel suo appartamento, ha concesso a sua moglie il "privilegio" di limitare l'accesso al frigorifero. Di conseguenza, per il secondo mese è stato a dieta e mangia solo verdure. Pertanto, anche prima di aggiungere un utente a MySQL, pensaci bene!
Quelli di cui ci fidiamo!
Tuttavia, ci sono persone nel mondo di cui ci si può fidare. E, naturalmente, questa non è una moglie o una suocera. Impariamo oggi come aggiungere account in MySQL e dare loro determinati privilegi.
Questo può essere fatto sia tramite la riga di comando che tramite le shell del programma. Cominciamo con un'opzione facile. Usiamo phpMyAdmin per aggiungere un nuovo utente. Ma prima, facciamo una piccola digressione nel sistema di account implementato nel DBMS.
L'utente più alto nella gerarchia è l'utente con l'account root. Inizialmente, questo account viene fornito con una password vuota. L'amministratore (root) può aggiungere un utente a MySQL, concedergli determinati diritti e anche privarlo dei privilegi.
Il sistema di privilegi è implementato non solo sul server DBMS, ma anche a livello di database. Puoi dare a un utente l'accesso a un database specifico e anche consentirgli di eseguire solo determinate operazioni con lo "storage". Ad esempio, vietare l'inserimento, l'eliminazione e l'aggiornamento dei dati, ma consentire selezioni dalle tabelle. Ma tutto questo è più facile da imparare nella pratica, quindi iniziamo.
Aggiunta di account tramite phpMyAdmin
Apri l'applicazione, vai alla scheda "Utenti" in alto. Verrà visualizzata la tabella "Panoramica account". Elenca tutti gli account esistenti sull'istanza del server, nonché un riepilogo dei relativi privilegi.
Per aggiungere un nuovo account, è necessario fare clic sul collegamento "Aggiungi utente", che si trova sotto la tabella. Successivamente, il sistema applicativo visualizzerà una speciale finestra di dialogo "Aggiungi utente".
Nella sezione più in alto ("Informazioni sull'account"), dovresti specificare un nome per un nuovo utente, impostare e confermare una password. Puoi anche ottenere un valore di password casuale che verrà automaticamente sostituito nei campi. Per fare ciò, fare clic sul pulsante "Genera".
Se scorri un po' verso il basso, i privilegi globali diventeranno disponibili per la modifica, che possono essere assegnati all'utente che viene creato. Lo screenshot mostra che tutti i privilegi sono suddivisi in diverse categorie: "Dati", "Struttura" e "Amministrazione". Prima di aggiungere un utente a MySQL, leggili e controlla quelli di cui hai bisogno.
Per creare un account, fare clic sul pulsante Aggiungi utente nella parte inferiore della finestra di dialogo. Ora diamo un'occhiata al risultato delle nostre azioni. Torna alla tabella "Panoramica dell'account" e rivedi il suo contenuto. Come puoi vedere, sul server è stato creato un nuovo account con il nome da noi specificato.
Aggiungi un nuovo utente del database
Attraverso phpMyAdmin, puoi amministrare i ruoli non solo a livello globale, ma anche a livello di singoli database. Per aggiungere un utente al database in MySQL, seleziona quello di cui hai bisogno nell'elenco a sinistra. Quindi passa attraverso la voce di menu "Privilegi", dove la tabella mostrerà tutti gli utenti che hanno accesso a questo database. Per creare un nuovo account del database, fai clic sul collegamento "Aggiungi utente", che si trova poco sotto (sotto la tabella).
Successivamente, apparirà la già familiare finestra di dialogo "Aggiungi utente". Compiliamo tutti i campi, come nell'esempio precedente. Daremo a leha2 privilegi globali sulla base mondiale - lascia che faccia quello che vuole con questo mondo. E fai clic in basso su "Aggiungi utente".
Controllo delle capacità degli utenti creati
Scopriamo cosa può essere creato da noi l'ultimo "Lech". Vai alla riga di comando. Entriamo nel server ed eseguiamo una selezione dal database per il quale è stato aggiunto un utente a MySQL: Z:\usr\local\mysql-5.5\bin\mysql.exe -u leha2 -p123
Ora proviamo ad entrare in un altro database sotto questo account (leha2) e facciamo anche una selezione da esso. Ad esempio, da questo database:
SELEZIONA * DA `db1`.`animale`;
SELEZIONA * DA `db1`. "animale"; |
Ma in risposta otteniamo da MySQL "in tyk", poiché l'account utilizzato ha diritti solo sul database mondiale.
Ma non sono tutte le opzioni di amministrazione dei privilegi. Puoi aggiungere un utente di sola visualizzazione a MySQL. Per fare ciò, modifica la tabella dei diritti di un account esistente o creane uno nuovo.
Vai di nuovo alla scheda "Privilegi". Nella tabella degli utenti, accanto all'account richiesto, fai clic su "Modifica privilegi". Quindi, nella finestra di dialogo che appare, disattiva tutti i privilegi tranne select. Pertanto, l'utente può solo visualizzare le tabelle o effettuare selezioni da esse utilizzando il comando SQL SELECT.
Creazione di un utente tramite la console
Impariamo come aggiungere un utente a MySQL tramite la console. Per fare ciò, dobbiamo accedere al server del database con diritti di amministratore. Quindi, usando il comando CREATE, crea un nuovo utente e imposta una password per lui:
CREA UTENTE "verter" @ "localhost" IDENTIFICATO DA "12345";
CREA UTENTE "verter" @ "localhost" IDENTIFICATO DA "12345"; |
Ora torniamo alla shell del software e vediamo se il "robot" che abbiamo creato è apparso nella tabella "Panoramica account".
Come puoi vedere, verter è diventato un utente del nostro server MySQL. Ma non ha alcun diritto (come qualsiasi robot). Così immorale nei confronti dei nostri fratelli "di ferro", quindi gli forniremo tutti i privilegi a una qualsiasi delle basi. Ad esempio, mondo.
Una caratteristica comune di MySQL è la propria sicurezza, basata sulla sicurezza esterna. MySQL è un sistema di gestione di database moderno, completo ed efficiente, dotato di strumenti propri per la gestione degli utenti e del loro accesso alle risorse che controlla.
Se non conosci il nome utente e la password corretti, accedi al database tramite MySQL molto difficile da ottenere.
Nella solita modalità di hosting, questo è abbastanza. 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.
Installazione di MySQL Server e dell'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, lavorare con il server è impossibile. I privilegi di questo utente sono sufficienti per:
- creare e amministrare nuovi utenti;
- creare e gestire database.
In linea di principio, è possibile che MySQL abbia utenti "senza password", ma questo è inaccettabile.
Pratica semplice:
- il server è installato sul proprio computer, sul quale può essere installato l'hosting (versione locale);
- il server è ospitato 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 la riga di comando è disponibile tramite accesso SSH remoto.
Strumenti di amministrazione propri
Un senso di parentela con la famiglia unixoid e con il passato dei server Apache è una caratteristica di MySQL: creare un utente è una riga di comando con una sintassi strana. Per gli specialisti 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 dell'utente inizia eseguendo la riga di comando del server. In un ambiente Windows, questa operazione viene eseguita come segue.
Innanzitutto (1) è necessario eseguire la riga di comando come amministratore, quindi andare nella cartella in cui si trova MySQL (2), quindi avviare il server stesso (3):
- mysql -u ... -p
qui "-u ..." e "-p" sono chiavi che puntano al nome "..." = root (o un altro nome) e la sua password. In linea di principio, un utente può non essere root, ma uno che ha diritti "root" (amministrativi).
Sostanzialmente: il server è in realtà sempre in esecuzione, qui mysql -u ... -p è il comando per accedere al server, non avviarlo.
In Linux e sistemi simili, tale comando è un'azione "nativa" e, di regola, è determinata semplicemente avviando mysqld nel posto giusto (lungo il percorso giusto), questo dovrebbe essere verificato con l'amministratore. Di solito è un nome diverso: non mysql, ma mysqld. Inoltre, qui questa azione non è sempre disponibile per tutti gli utenti (del sistema operativo, non del server MySQL). A differenza di Windows, in Linux, l'ordine e la sicurezza sono un requisito naturale e non discusso, verso il quale c'è sempre un atteggiamento civile.
In ogni caso, non appena mysql si avvia, te lo comunicherà con il prompt (4):
- mysql>
e sarà possibile lavorare sia con utenti che con database.
Nota. Quando si installa in un ambiente Windows, tutto: Apache, MySQL, può essere installato nei percorsi predefiniti, ma si consiglia di utilizzare posizioni più compatte e 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 di gestirne le funzionalità.
Lavorare nella riga di comando di MySQL
Una volta che il server ha risposto e fornito la sua riga di comando, puoi creare utenti e assegnare loro i diritti.
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 offre di risolverlo, ma è meglio quando si lavora nella riga di comando. non commettere mai errori!
Il seguente comando concedere tutti i privilegi dà tutti i diritti su tutto. Il comando flush può essere omesso, ma "svuota" il buffer dei comandi, cioè ne corregge l'esecuzione.
MySQL: crea un utente e concedi i diritti al database
Comando utilizzato nell'esempio:
- CONCEDERE TUTTI I PRIVILEGI SU *.* A "Petrov" @ "localhost";
apre effettivamente l'accesso per l'utente Petrov a tutti i database (primo asterisco) a tutte le tabelle (secondo asterisco).
Come regola generale di MySQL, la creazione di un utente è:
- GRANT [tipo di privilegio] ON [nome database] [nome tabella] TO "[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 nelle tabelle.
- SELECT - il diritto di leggere le informazioni dalle tabelle.
- AGGIORNAMENTO - il diritto di aggiornare le informazioni nelle tabelle.
- OPZIONE DI CONCESSIONE - il diritto di lavorare con i privilegi di altri utenti.
Da un punto di vista pratico, in MySQL "creare utente" implica tre tipi di diritti:
- tutti i diritti su tutti i database e tutti gli utenti;
- leggendo e scrivendo;
- solo lettura.
Il resto delle opzioni per la concessione dei diritti sono poche quando richiesto. Nell'ambiente dei sistemi Linux, ci sono molte più basi per la libertà "legale" (e necessità), ma ci sono molte più opportunità che in Windows.
L'opposto di MySQL "crea utente" è drop.
- rilascia l'utente "Petrov" @ "localhost";
Dopo aver eseguito questo comando, l'utente Petrov scomparirà ei suoi privilegi andranno persi. Per modificare i privilegi, utilizzare il comando:
- REVOKE [privilegio] ON [db] [Tabella] TO "[utente]" @ "localhost";
La solita azione in MySQL è creare un utente o eliminare e niente di più, ma anche cambiare i privilegi è un'operazione valida (raramente richiesta).
Utilizzo di phpMyAdmin
Ci sono molte implementazioni di questo fantastico strumento. A seconda della versione di Apache, PHP e MySQL utilizzata, spesso la ricerca della versione richiesta di questo prodotto richiede molto tempo, ma una volta installato con successo phpMyAdmin, l'utente dispone di molte funzioni utili e di un'interfaccia comoda.
Usando phpMyAdmin, puoi dire a MySQL di creare un utente per qualsiasi host e gestire gli utenti esistenti con metodi quasi chirurgici.
phpMyAdmin non è l'unico strumento con un'interfaccia comoda, intuitiva e ricca di funzionalità, ma è lo strumento più popolare per l'amministrazione dei server MySQL.
Informazioni sulla riga di comando e sulla sicurezza
Ovviamente, l'utilizzo della riga di comando di MySQL è un'esperienza poco attraente, ma va tenuto presente che in alcuni casi solo la riga di comando del server può salvare il database o l'utente, fornire l'importazione o l'esportazione di informazioni.
Le versioni dei prodotti software si stanno sviluppando così rapidamente che gli sviluppatori semplicemente non hanno il tempo di combinare funzionalità, ad esempio PHP e MySQL, MySQL e phpMyAdmin. Se succede qualcosa, la riga di comando salverà sempre la giornata.
Inoltre, non dovresti mai dimenticare: l'amministrazione di MySQL riguarda solo l'accesso ai suoi database e attraverso le sue funzionalità. I file di database sono aperti per l'accesso all'esterno di MySQL. La sicurezza esterna per MySQL e le risorse che controlla è un'esigenza reale e importante.
In questo articolo, ti mostreremo come creare nuovi permessi utente e privilegi per questo utente in MySQL. MySQL è un database relazionale (DBMS) open source e guidato dal sistema che consente agli utenti e alle applicazioni di archiviare, organizzare e recuperare i propri dati. Ha un sistema di controllo degli accessi che consiste nelle autorizzazioni che gli utenti possono avere su tabelle e database, esamineremo alcune delle variazioni di questo sistema di controllo degli accessi descritte più avanti in questa guida.
Iniziamo effettuando il login
Per accedere al nostro sistema MySQL, utilizziamo il seguente comando:
# mysql -u root -p
Quando eseguiamo questo comando, diciamo al client MySQL che abbiamo effettuato l'accesso con il superutente e forniamo la password dell'utente.
Crea un nuovo utente
Ora che siamo all'interno del nostro server MySQL, possiamo indicare a MySQL di creare un nuovo utente con la seguente query:
CREATE USER "new_user" @ "localhost" IDENTIFICATO DA "password";
Consigli : usa sempre una password complessa per tutti gli account. Che puoi.
Un'altra cosa interessante di questo comando è che il nome host del nuovo utente appena creato può essere un nome host o un indirizzo IP diverso se vogliamo che l'utente acceda in remoto.
Come esempio:
CREATE USER "nuovo_utente" @ "10.20.30.111" IDENTIFICATO DA "password";
Diciamo che vogliamo dare al nostro nuovo utente i diritti di accesso in modo che possano leggere i dati da tutti i database sul nostro server MySQL. Lo facciamo inserendo il seguente comando:
CONCEDERE SELEZIONE SU *. * TO "new_user" @ "localhost";
Quando eseguiamo la query sopra, istruiamo MySQL a dare al nostro nuovo utente il permesso di usare il comando SELECT per leggere dal database sul nostro server MySQL, abbiamo usato la parola chiave SELECT per farlo. GRANT SELECT dice a MySQL che l'utente non avrà altro che le autorizzazioni per leggere i dati dal database o dai database dati. Le autorizzazioni sono generalmente concesse nel seguente formato:
CONCEDERE