Lägga till och ändra MySQL lösenord och privilegier

May 23

Lösenord i MySQL arenâ € t set i sten. Du kan lägga till eller ändra ett lösenord för ett befintligt konto. Liksom många procedurer, kan du lägga till eller ändra lösenord med en SQL-sats, så här:

STÄLL lösenord för användarnamn @ värdnamn = LÖSENORD ('lösenord')

Kontot är inställd på lösenord för kontot användarnamn @ värdnamn. Om kontot har för närvarande ett lösenord, är lösenordet ändrat. Du donâ € t behov av att specificera FOR klausulen. Om du donâ € t, är lösenordet för kontot du € re närvarande använder.

Du kan ta bort ett lösenord genom att skicka SET PASSWORD uttalande med ett tomt lösenord:

STÄLL lösenord för användarnamn @ värdnamn = LÖSENORD ('')

När du gör ändringar i lösenord, måste du uppdatera privilegier så att MySQL ser förändringen. Detta åstadkoms med flush privilegier uttalande:

FLUSH privilegier

Varje konto har en uppsättning privilegier som anger vad användaren av kontot kan och inte kan göra. Du kan ställa in de privilegier när du skapar ett konto, men du kan också ändra privilegier ett konto när som helst.

Du kan se de aktuella behörighet för ett konto genom att skicka följande uttalande:

VISA BIDRAG TILL kontonamn @ värdnamn

Utgången är en GRANT uttalande som skulle skapa det aktuella kontot. Utsignalen visar alla aktuella privilegier. Om du donâ € t inkluderar ON klausulen, ser du de aktuella behörighet för det konto som utfärdat VISA BIDRAG frågan.

Du kan ändra behörigheter för ett konto med GRANT uttalande, som har följande allmänna format:

GRANT privilegium (kolumner) ON tabellnamn
ATT kontonamn @ värdnamn identifieras med "lösenord"

Liksom andra behörighetsrelaterade förändringar, måste du uppdatera privilegier efter att göra ändringar med hjälp FLUSH privilegier.

Du kan också skapa ett nytt konto eller ändra ett lösenord med GRANT uttalande. Du måste fylla i följande information:

  • privilegium (kolumner): Du måste lista minst en privilegium. Du kan begränsa varje privilegium att en eller flera kolumner genom att lista kolumnnamnet inom parentes efter förmånen. Om du donâ € t listan ett kolumnnamn, är de befogenheter som beviljas på alla kolumner i tabellen (s). Du kan lista så många privilegier och kolumner som behövs, separerade med kommatecken. Till exempel kan en GRANT uttalande börja med detta:

    GRANT välja (firstname, lastname), uppdatera,
    infoga (födelsedatum) ...
  • tabellnamn: Namnet (eller namn) i tabellen (er) på vilken förmånen beviljas. Du måste inkludera minst ett bord. Du kan lista flera tabeller, separerade med kommatecken. De möjliga värdena för tabellnamn är
    • tabellnamn: Hela tabell med namnet tabellnamn i den aktuella databasen. Du kan använda en asterisk (*) för att betyda alla tabeller i den aktuella databasen. Om du använder en asterisk och ingen aktuella databasen väljs de befogenheter som beviljas till alla tabeller på alla databaser.
    • databasename.tablename: Hela tabell med namnet tabellnamn i databasnamn. Du kan använda en asterisk (*) för antingen databasnamn eller tabellnamnet betyda alla databaser eller tabeller. Använda *. * Beviljar förmånen på alla tabeller i alla databaser.
  • kontonamn @ värdnamn: Om kontot redan finns, itâ € s med tanke på de angivna privilegier. Om kontot doesnâ € t existerar, itâ € s sätts. Den konto identifieras av kontonamn och värdnamnet som ett par. Om ett konto har ett visst kontonamn men en annan värdnamn, ISNA det befintliga kontot € t förändrats; en ny skapas.
  • lösenord: Lösenordet som du € re lägga till eller ändra. Ett lösenord ISNA € t krävs. Om du donâ € t vill lägga till eller ändra ett lösenord för kontot, utelämna frasen identifieras av ett € ~passwordâ € .

Till exempel kan det GRANT uttalande som tillför ett nytt konto för användning i PHP-skript för en online katalog databas med namnet ProductCatalog vara

GRANT Välj ON ProductCatalog. * ATT phpuser @ localhost
Identifieras med "A41! 14a!"

För att ta bort privilegier, använder REVOKE uttalande. Det allmänna formatet är

REVOKE privilegium (kolumner) ON tabellnamn
FRÅN kontonamn @ värdnamn

Du måste fylla i lämplig information.

Du kan ta bort alla privilegier för ett konto med följande REVOKE uttalande:

REVOKE alla ON *. * FROM kontonamn @ värdnamn