MySQL Security Database

March 17  by Eliza

Når MySQL er installert, skaper det automatisk en database kalt mysql. All informasjon som brukes til å beskytte dine data er lagret i denne databasen, inkludert kontonavn, vertsnavn, passord og privilegier.

Privilegier er lagret i kolonner. Formatet navn hver kolonne er privilegium _priv, hvor privilegium er en bestemt konto privilegium. For eksempel, er kolonnen som inneholder ALTER privilegier heter alter_priv. Verdien i hvert privilegium kolonne er Y eller N, som betyr ja eller nei.

Så, for eksempel, i brukertabellen, det ville være en rad for en konto og en kolonne for alter_priv. Hvis kontoen feltet for alter_priv inneholder Y, kan kontoen brukes til å utføre en ALTER-setning. Hvis alter_priv inneholder N, kontoen doesnâ € ™ t ha privilegium å utføre en ALTER-setning.

Mysql database inneholder følgende tabeller som lagrer privilegier:

  • brukertabell: Denne tabellen lagrer privilegier som gjelder for alle databaser og tabeller. Den inneholder en rad for hver gyldig konto som inneholder kolonner brukernavn, vertsnavn og passord. MySQL-serveren avviser en tilkobling for en konto som doesnâ € ™ t eksisterer i denne tabellen.
  • db tabell: Denne tabellen lagrer privilegier som gjelder for en bestemt database. Den inneholder en rad for databasen, som gir privilegier til en kontonavn og et vertsnavn. Kontoen må finnes i brukertabellen for privilegier til å bli innvilget. Privilegier som er gitt i brukertabellen overprøve privilegier i denne tabellen.

    For eksempel, hvis brukeren tabellen har en rad for kontoen designer som gir INSERT privilegier, kan designer sette inn i alle databaser. Hvis en rad i db tabellen viser N for INSERT for designeren konto i PetCatalog database, brukertabellen overstyrer den, og designer kan sette i PetCatalog database.

  • vert tabellen: Denne tabellen kontrollerer tilgangen til en database, avhengig av verten. Vertstabellen fungerer med db tabellen. Hvis en rad i db tabellen har et tomt felt for verten, sjekker MySQL verten tabellen for å se om db har en rad der. På denne måten kan du tillate tilgang til en db fra noen verter, men ikke fra andre.

    For eksempel si at du har to databaser: db1 og DB2. Den db1 databasen har sensitiv informasjon, slik du vil at kun visse mennesker til å se den. DB2-databasen har informasjon som du vil at alle skal se. Hvis du har en rad i db tabellen for db1 med en blank vert felt, kan du ha to rader for db1 i vertstabellen.

    En rad kan gi alle rettigheter til brukere som kobler fra en bestemt vert, mens en annen rad kan nekte privilegier til brukere som kobler seg fra alle andre vert.

  • tables_priv tabellen: Denne tabellen lagrer privilegier som gjelder for bestemte tabeller.
  • columns_priv tabellen: Denne tabellen lagrer privilegier som gjelder for bestemte kolonner.

Du kan se og endre tabellene i mysql direkte hvis youâ € ™ re med en konto som har de nødvendige rettighetene. Du kan bruke SQL-spørringer som SELECT, INSERT og UPDATE. Hvis youâ € ™ re tilgang til MySQL gjennom arbeidsgiver, en klient eller en web hosting selskap, har du sannsynligvis dona € ™ t har en konto med nødvendige rettigheter.