sql >> Database teknologi >  >> RDS >> Mysql

Sådan opretter du en ny bruger og giver tilladelser i MySQL

MySQL er et populært og meget brugt databasestyringssystem, der gemmer og organiserer data og giver brugerne mulighed for at hente dem. Den leveres med en bred vifte af muligheder, der giver brugerne visse tilladelser til tabeller og databaser.

I denne vejledning lærer du, hvordan du opretter en ny bruger og giver tilladelser i MySQL database.

Sådan opretter du en ny bruger i MySQL

For at oprette en ny bruger skal du først logge ind på MySQL-skallen.

$ sudo mysql -u root -p

Angiv sudo-adgangskoden efterfulgt af adgangskoden, der blev givet ved opsætning af MySQL-databasen, og tryk på ENTER . Derefter vil du få denne prompt.

For at oprette en ny bruger, brug syntaksen vist nedenfor:

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

For eksempel at oprette en ny bruger kaldet 'tecmint ’ i databasen skal du kalde kommandoen:

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

Et par punkter at huske på

Når du tilføjer en bruger lokalt, dvs. på det system, du har installeret MySQL , er brugerens vært angivet som localhost , og ikke IP-adressen. Søgeordet "localhost ' oversættes til 'denne computer ' og MySQL behandler det unikt. Grundlæggende bruges localhost af mysql-klienten til at etablere en forbindelse til den lokalt installerede MySQL-databaseserver.

Indtil videre er tecmint brugeren har ingen tilladelser til at interagere med databaserne. Faktisk kan brugeren ikke engang få adgang til MySQL-skallen.

For at give brugeren fuld adgang til alle databaser, inklusive tabellerne, skal du køre.

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

I kommandoen ovenfor peger asteriskerne på henholdsvis databasen og tabellen, som brugeren har adgang til. Det giver brugeren alle rettigheder til databasen – læs , skriv , rediger, og udfør herunder at udføre alle opgaverne på tværs af andre databaser og tabeller også.

Indtil videre har vi givet brugeren fuld adgang til databasen. Selvom dette er praktisk til at forklare MySQL-koncepter, anbefales det generelt ikke, da det kan udgøre en sikkerhedsrisiko for dine databaser. Tænk bare på, hvad der kunne ske, hvis en hacker fik fat i brugerens adgangskode. Vi vil gå videre og diskutere, hvordan man tildeler specifikke tilladelser i næste afsnit.

Når du er færdig med at tildele tilladelser til brugeren, skal du genindlæse alle privilegier som vist for at ændringerne træder i kraft.

MariaDB [none]> FLUSH PRIVILEGES

Sådan giver du forskellige brugertilladelser

Her er en oversigt over de mulige tilladelser, som du kan give brugere:

  • ALLE PRIVILEGIER – Som tidligere set giver dette en MySQL-bruger fuld adgang til en specifik database.
  • OPRET – Giver brugere mulighed for at oprette nye databaser eller tabeller.
  • SLIP – Gør det muligt for brugere at slette databaser eller brugere.
  • INDSÆT – Giver brugere mulighed for at indsætte rækker i tabeller.
  • SLET – Giver brugere mulighed for at slette rækker fra tabeller.
  • VÆLG – med 'SELECT'-tilladelse kan brugere læse indholdet af en tabel.
  • OPDATERING – Giver brugere mulighed for at opdatere rækkerne i en tabel.
  • GIV MULIGHED – Brugere kan tildele eller fjerne andre brugeres rettigheder.

For at give en specifik brugertilladelse skal du bruge syntaksen:

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

Derudover kan du tildele tilladelser til alle tabellerne i en database med et enkelt stjernesymbol som vist:

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

For eksempel at tildele SELECT tilladelser til "tecmint ’ bruger på alle tabeller i databasen testdb , kør kommandoen.

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

Fjern derefter rettighederne for at ændringerne træder i kraft.

MariaDB [none]> FLUSH PRIVILEGES;

Derudover kan du tildele flere tilladelser på en gang ved at adskille dem med et komma som vist.

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

Sådan tilbagekalder du MySQL-tilladelser

For at tilbagekalde tilladelser fra en bruger skal du bruge syntaksen:

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

For eksempel for at tilbagekalde INSERT tilladelser fra brugeren "tecmint ’, kør kommandoen.

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

For at få et kig på en brugers aktuelle tilladelser skal du udføre:

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

Fra outputtet nedenfor kan vi se, at INSERT tilladelsen er blevet fjernet fra 'tecmint ’ bruger, der kun forlader SELECT og OPDATERING rettigheder på testdb database.

For at teste logge ind på MySQL-skallen med den nye bruger, skal du først logge ud.

MariaDB [none]> quit;

Log derefter på igen.

$ sudo mysql -u tecmint -p

Angiv brugerens adgangskode, og tryk på ENTER for at få adgang til skallen.

For at droppe en bruger skal du bruge DROP kommando, ligesom du ville gøre, når du sletter en database.

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

Du vil måske også gerne læse følgende MySQL-relaterede artikler:

  • Nyttige tips til fejlfinding af almindelige fejl i MySQL
  • Mytop – Et nyttigt værktøj til overvågning af MySQL/MariaDB-ydeevne i Linux
  • Sådan ændres standard MySQL/MariaDB-port i Linux
  • Sådan nulstiller du MySQL eller MariaDB Root Password i Linux
Konklusion

Forhåbentlig kan du nu oprette brugere i dine MySQL-databaseservere og komfortabelt tildele eller tilbagekalde tilladelser.


  1. Oracle PL/SQL-samlinger - Tilføjelse af elementer til en eksisterende tabel

  2. Introduktion til SQL Joins

  3. Hvordan kan du se, om en PL/SQL-pakke, -procedure eller -funktion bliver brugt?

  4. Neo4j - Drop et indeks ved hjælp af Cypher