MySQL is een populair en veelgebruikt databasebeheersysteem dat gegevens opslaat en organiseert en gebruikers in staat stelt deze op te halen. Het wordt geleverd met een breed scala aan opties die gebruikers bepaalde machtigingen verlenen voor tabellen en databases.
In deze handleiding leert u hoe u een nieuwe gebruiker maakt en machtigingen verleent in de MySQL database.
Een nieuwe gebruiker aanmaken in MySQL
Om een nieuwe gebruiker aan te maken, logt u eerst in op de MySQL-shell.
$ sudo mysql -u root -p
Geef het sudo-wachtwoord op gevolgd door het wachtwoord dat is opgegeven bij het instellen van de MySQL-database en druk op ENTER . Daarna krijgt u deze prompt.
Gebruik de onderstaande syntaxis om een nieuwe gebruiker aan te maken:
MariaDB [none]> CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';
Om bijvoorbeeld een nieuwe gebruiker aan te maken met de naam 'tecmint ’ in de database, roep het commando op:
MariaDB [none]> CREATE USER 'tecmint'@'localhost' IDENTIFIED BY 'QkYKmw$5tec';
Een paar punten om in gedachten te houden
Bij het lokaal toevoegen van een gebruiker, d.w.z. op het systeem dat u MySQL hebt geïnstalleerd , de host van de gebruiker is opgegeven als localhost , en niet het IP-adres. Het zoekwoord 'localhost ' vertaalt naar 'deze computer ' en MySQL behandelt het uniek. In principe wordt localhost door de mysql-client gebruikt om een verbinding tot stand te brengen met de lokaal geïnstalleerde MySQL-databaseserver.
Tot nu toe is de tecmint gebruiker heeft geen machtigingen om te communiceren met de databases. De gebruiker heeft zelfs geen toegang tot de MySQL-shell.
Om de gebruiker volledige toegang te verlenen tot alle databases, inclusief de tabellen, start u.
MariaDB [none]> GRANT ALL PRIVILEGES ON * . * TO 'tecmint'@'localhost';
In de bovenstaande opdracht verwijzen de sterretjes naar respectievelijk de database en de tabel waartoe de gebruiker toegang heeft. Het geeft de gebruiker alle rechten op de database – lees , schrijf , bewerken, en uitvoeren inclusief het uitvoeren van alle taken in andere databases en tabellen.
Tot nu toe hebben we de gebruiker volledige toegang tot de database verleend. Hoewel dit handig is bij het uitleggen van MySQL-concepten, wordt het over het algemeen niet aanbevolen omdat het een beveiligingsrisico voor uw databases kan vormen. Bedenk wat er kan gebeuren als een hacker het wachtwoord van de gebruiker in handen krijgt. We gaan verder en bespreken in het volgende gedeelte hoe u specifieke machtigingen kunt toewijzen.
Wanneer u klaar bent met het toewijzen van rechten aan de gebruiker, laadt u alle rechten opnieuw zoals weergegeven om de wijzigingen door te voeren.
MariaDB [none]> FLUSH PRIVILEGES
Hoe u verschillende gebruikersmachtigingen kunt verlenen
Hier is een overzicht van de mogelijke machtigingen die u gebruikers kunt verlenen:
- ALLE VOORRECHTEN – Zoals eerder gezien, geeft dit een MySQL-gebruiker volledige toegang tot een specifieke database.
- MAKEN – Hiermee kunnen gebruikers nieuwe databases of tabellen maken.
- DROP – Hiermee kunnen gebruikers databases of gebruikers verwijderen.
- INSERT – Hiermee kunnen gebruikers rijen in tabellen invoegen.
- VERWIJDEREN – Hiermee kunnen gebruikers rijen uit tabellen verwijderen.
- SELECTEER – met ‘SELECT’ toestemming kunnen gebruikers de inhoud van een tabel lezen.
- UPDATE – Hiermee kunnen gebruikers de rijen in een tabel bijwerken.
- SUBSIDIEOPTIE – Gebruikers kunnen de rechten van andere gebruikers toekennen of verwijderen.
Gebruik de syntaxis om een specifieke gebruikersmachtiging te verlenen:
MariaDB [none]> GRANT permission_type ON database_name.table_name TO 'username'@'localhost';
Bovendien kunt u machtigingen toewijzen aan alle tabellen in een database met een enkel sterretje, zoals weergegeven:
MariaDB [none]> GRANT permission_type ON database_name.* TO 'username'@'localhost';
Om bijvoorbeeld SELECT . toe te wijzen machtigingen voor 'tecmint ' gebruiker op alle tabellen van de database testdb , voer de opdracht uit.
MariaDB [none]> GRANT SELECT ON testdb.* TO 'tecmint'@'localhost';
Spoel vervolgens de rechten door om de wijzigingen door te voeren.
MariaDB [none]> FLUSH PRIVILEGES;
Bovendien kunt u meerdere machtigingen tegelijk toewijzen door ze te scheiden met een komma, zoals weergegeven.
MariaDB [none]> GRANT INSERT, UPDATE ON testdb.* TO 'tecmint'@'localhost';
MySQL-machtigingen intrekken
Gebruik de syntaxis om machtigingen van een gebruiker in te trekken:
MariaDB [none]> REVOKE permission_type ON database_name.table_name FROM 'username'@'localhost';
Om bijvoorbeeld INSERT . in te trekken machtigingen van de gebruiker 'tecmint ’, voer de opdracht uit.
MariaDB [none]> REVOKE INSERT ON testdb.* FROM tecmint'@'localhost'; MariaDB [none]> FLUSH PRIVILEGES
Om een kijkje te nemen in de huidige rechten van een gebruiker, voer je het volgende uit:
MariaDB [none]> SHOW GRANTS FOR 'username'@'localhost';
Uit de onderstaande output kunnen we zien dat de INSERT toestemming is verwijderd uit de 'tecmint ’ gebruiker verlaat alleen SELECT en UPDATE rechten op de testdb database.
Om het inloggen op de MySQL-shell uit te testen met de nieuwe gebruiker, logt u eerst uit.
MariaDB [none]> quit;
Log dan opnieuw in.
$ sudo mysql -u tecmint -p
Geef het wachtwoord van de gebruiker op en druk op ENTER om toegang te krijgen tot de shell.
Gebruik de DROP . om een gebruiker te verwijderen commando, net zoals je zou doen bij het verwijderen van een database.
MariaDB [none]> DROP USER 'username'@'localhost';
Misschien vind je het ook leuk om de volgende MySQL-gerelateerde artikelen te lezen:
- Handige tips om veelvoorkomende fouten in MySQL op te lossen
- Mytop – Een handig hulpmiddel voor het bewaken van MySQL/MariaDB-prestaties in Linux
- De standaard MySQL/MariaDB-poort in Linux wijzigen
- Hoe MySQL- of MariaDB-rootwachtwoord in Linux opnieuw in te stellen
Conclusie
Hopelijk kunt u nu gebruikers maken in uw MySQL-databaseservers en gemakkelijk machtigingen toewijzen of intrekken.