Il database MySQL Security

Quando si installa MySQL, si crea automaticamente un database chiamato mysql. Tutte le informazioni utilizzate per proteggere i vostri dati sono memorizzati in questo database, tra cui nomi di account, nomi di host, password e privilegi.

I privilegi sono memorizzati in colonne. Il formato di ogni nome di colonna è privilegio _priv, in cui il privilegio è un privilegio account specifico. Ad esempio, la colonna contenente privilegi ALTER è denominato alter_priv. Il valore in ogni colonna privilegio è Y o N, che significa sì o no.

Così, per esempio, nella tabella utente, ci sarebbe una riga per un account e una colonna per alter_priv. Se il campo per conto alter_priv contiene Y, il conto può essere utilizzato per eseguire un'istruzione ALTER. Se alter_priv contiene N, l'account doesnâ € t avere il privilegio di eseguire un'istruzione ALTER.

Il database mysql contiene le seguenti tabelle che memorizzano i privilegi:

  • tabella utente: Questa tabella contiene i privilegi che si applicano a tutti i database e le tabelle. Esso contiene una riga per ogni account valido che include le colonne nome utente, nome host, e la password. Il server MySQL rifiuta una connessione per un account che doesnâ € t esiste in questa tabella.
  • tabella db: Questa tabella contiene i privilegi che si applicano a un particolare database. Esso contiene una riga per il database, che dà i privilegi di un nome account e un nome host. L'account deve esistere nella tabella utente per i privilegi da concedere. Privilegi che vengono dati nella tabella utente prevalgono privilegi in questa tabella.

    Per esempio, se la tabella utente ha una riga per il progettista conto che dà privilegi INSERISCI, progettista può inserire in tutti i database. Se una riga nella tabella db mostra N per INSERT per l'account progettista nel database PetCatalog, la tabella utente annulla, e progettista può inserire nel database PetCatalog.
  • ospitare tavolo: Controlla tabella di Access a un database, a seconda del host. La tabella host funziona con la tabella db. Se una riga della tabella db ha un campo vuoto per l'host, MySQL controlla la tabella degli host per vedere se il db ha una fila lì. In questo modo, è possibile consentire l'accesso a un db da alcuni host, ma non dagli altri.

    Ad esempio, supponiamo di avere due database: DB1 e DB2. Il database DB1 dispone di informazioni sensibili, in modo che si desidera solo alcune persone a vederlo. Il database DB2 dispone di informazioni che si desidera a tutti di vedere. Se si dispone di una riga della tabella db per DB1 con un campo di accoglienza vuoto, si possono avere due righe per db1 nella tabella host.

    Una riga può dare tutti i privilegi per gli utenti che si connettono da un host specifico, mentre un'altra fila può negare i privilegi di utenti che si connettono da qualsiasi altro host.

  • tavolo tables_priv: Questa tabella contiene i privilegi che si applicano a specifiche tabelle.
  • tavolo columns_priv: Questa tabella contiene i privilegi che si applicano a colonne specifiche.

È possibile visualizzare e modificare le tabelle mysql direttamente se youâ € re utilizzando un account che ha i privilegi necessari. È possibile utilizzare le query SQL come SELECT, INSERT, UPDATE e. Se youâ € re accesso MySQL attraverso il vostro datore di lavoro, un cliente, o di una società di web hosting, probabilmente donâ € t avere un account con i privilegi necessari.