sql >> Databasteknik >  >> RDS >> Mysql

Hur man skapar en ny användare och beviljar behörigheter i MySQL

MySQL är ett populärt och allmänt använt databashanteringssystem som lagrar och organiserar data och låter användare hämta dem. Den kommer med ett brett utbud av alternativ som ger användare vissa behörigheter till tabeller och databaser.

I den här guiden lär du dig hur du skapar en ny användare och beviljar behörigheter i MySQL databas.

Hur man skapar en ny användare i MySQL

För att skapa en ny användare logga först in på MySQL-skalet.

$ sudo mysql -u root -p

Ange sudo-lösenordet följt av lösenordet som angavs när du konfigurerade MySQL-databasen och tryck på ENTER . Därefter får du denna prompt.

För att skapa en ny användare, använd syntaxen som visas nedan:

MariaDB [none]> CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';

Till exempel för att skapa en ny användare som heter "tecmint ’ i databasen, anropa kommandot:

MariaDB [none]> CREATE USER 'tecmint'@'localhost' IDENTIFIED BY 'QkYKmw$5tec';

Några punkter att tänka på

När du lägger till en användare lokalt, dvs. på systemet som du har installerat MySQL , är användarens värd specificerad som localhost och inte IP-adressen. Sökordet "localhost " översätts till "denna dator ' och MySQL behandlar det unikt. I grund och botten används localhost av mysql-klienten för att upprätta en anslutning till den lokalt installerade MySQL-databasservern.

Hittills har tecmint användaren har inga behörigheter att interagera med databaserna. I själva verket kan användaren inte ens komma åt MySQL-skalet.

För att ge användaren full åtkomst till alla databaser, inklusive tabellerna, kör.

MariaDB [none]> GRANT ALL PRIVILEGES ON * . * TO 'tecmint'@'localhost';

I kommandot ovan pekar asteriskerna på databasen respektive tabellen som användaren kan komma åt. Det ger användaren alla rättigheter på databasen – läs , skriv , redigera, och kör inklusive att utföra alla uppgifter i andra databaser och tabeller också.

Hittills har vi gett användaren full tillgång till databasen. Även om detta är praktiskt för att förklara MySQL-koncept, rekommenderas det i allmänhet inte eftersom det kan utgöra en säkerhetsrisk för dina databaser. Tänk bara på vad som kan hända om en hackare fick tag i användarens lösenord. Vi kommer att gå vidare och diskutera hur man tilldelar specifika behörigheter i nästa avsnitt.

När du är klar med att tilldela behörigheter till användaren, ladda om alla behörigheter som visas för att ändringarna ska träda i kraft.

MariaDB [none]> FLUSH PRIVILEGES

Hur man beviljar olika användarbehörigheter

Här är en uppdelning av möjliga behörigheter som du kan ge användare:

  • ALLA PRIVILEGIER – Som tidigare sett, ger detta en MySQL-användare full åtkomst till en specifik databas.
  • SKAPA – Tillåter användare att skapa nya databaser eller tabeller.
  • SLÄPP – Gör det möjligt för användare att ta bort databaser eller användare.
  • INSERT – Tillåter användare att infoga rader i tabeller.
  • RADERA – Tillåter användare att ta bort rader från tabeller.
  • VÄLJ – med 'SELECT'-behörighet kan användare läsa innehållet i en tabell.
  • UPPDATERA – Tillåter användare att uppdatera raderna i en tabell.
  • BEHANDLA ALTERNATIV – Användare kan bevilja eller ta bort privilegier för andra användare.

För att ge en specifik användarbehörighet, använd syntaxen:

MariaDB [none]> GRANT permission_type ON database_name.table_name TO 'username'@'localhost';

Dessutom kan du tilldela behörigheter till alla tabeller i en databas med en enda asterisksymbol som visas:

MariaDB [none]> GRANT permission_type ON database_name.* TO 'username'@'localhost';

Till exempel att tilldela SELECT behörigheter till "tecmint ' användare i alla tabeller i databasen testdb , kör kommandot.

MariaDB [none]> GRANT SELECT ON testdb.* TO 'tecmint'@'localhost';

Rensa sedan privilegier för att ändringarna ska träda i kraft.

MariaDB [none]> FLUSH PRIVILEGES;

Dessutom kan du tilldela flera behörigheter samtidigt genom att separera dem med ett kommatecken som visas.

MariaDB [none]> GRANT INSERT, UPDATE ON testdb.* TO 'tecmint'@'localhost';

Hur man återkallar MySQL-behörigheter

För att återkalla behörigheter från en användare, använd syntaxen:

MariaDB [none]> REVOKE permission_type ON database_name.table_name FROM 'username'@'localhost';

Till exempel för att återkalla INSERT behörigheter från användaren "tecmint ’, kör kommandot.

MariaDB [none]> REVOKE INSERT ON testdb.* FROM tecmint'@'localhost';
MariaDB [none]> FLUSH PRIVILEGES

För att få en titt på en användares aktuella behörigheter, kör:

MariaDB [none]> SHOW GRANTS FOR 'username'@'localhost';

Från utgången nedan kan vi se att INSERT behörigheten har raderats från "tecmint ’ användare lämnar bara SELECT och UPPDATERA rättigheter på testdb databas.

För att testa att logga in på MySQL-skalet med den nya användaren, logga först ut.

MariaDB [none]> quit;

Logga sedan in igen.

$ sudo mysql -u tecmint -p

Ange användarens lösenord och tryck på ENTER för att komma åt skalet.

För att ta bort en användare, använd DROP kommando, precis som när du tar bort en databas.

MariaDB [none]> DROP USER 'username'@'localhost';

Du kanske också vill läsa följande MySQL-relaterade artiklar:

  • Användbara tips för att felsöka vanliga fel i MySQL
  • Mytop – Ett användbart verktyg för att övervaka MySQL/MariaDB-prestanda i Linux
  • Hur man ändrar standard MySQL/MariaDB-port i Linux
  • Hur man återställer MySQL eller MariaDB Root Password i Linux
Slutsats

Förhoppningsvis kan du vid det här laget skapa användare i dina MySQL-databasservrar och bekvämt tilldela eller återkalla behörigheter.


  1. Hur man schemalägger databassäkerhetskopior med ClusterControl

  2. Sammanfoga resultat från två separata databaser

  3. Docker-behållare för Postgres 9.1 exponerar inte port 5432 för värd

  4. SQL Server - brist på NATURAL JOIN / x JOIN y USING(fält)