Direct nadat je MySQL hebt geïnstalleerd, heb je de root
gebruiker beschikbaar.
Dit is de gebruiker die u zou kunnen gebruiken om te zien of MySQL werkt, maar het zou niet de gebruiker moeten zijn voor andere soorten gebruik.
Waarom? Omdat het te krachtig is .
Met grote kracht komt grote verantwoordelijkheid (zei de oom van Spider-Man). En vooral groot gevaar als je fouten maakt.
In plaats daarvan moet u ad-hocgebruikers maken die alleen machtigingen hebben om hun werk uit te voeren, en niet meer. Hetzelfde geldt voor het gebruik van Linux of een ander Unix-systeem, bijvoorbeeld:u wilt de root
niet gebruiken gebruiker, maar uw eigen gebruikersaccount.
Om een nieuwe gebruiker aan te maken, maakt u verbinding met MySQL met behulp van de root
gebruiker:
mysql -u root -p
gebruik dan het commando
CREATE USER '<username>'@'localhost' IDENTIFIED BY '<password>';
Om bijvoorbeeld een gebruiker te maken met de naam test_user
met wachtwoord test_password12A
voer het commando uit:
CREATE USER 'test_user'@'localhost' IDENTIFIED BY 'test_password12A';
De opdracht zou een regel moeten retourneren met de tekst Query OK, 0 rows affected (X.XX sec)
:
Als u een ongeldig wachtwoord had gebruikt, zou het systeem u iets vertellen als ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
. In dit geval zegt de fout dat het wachtwoord niet complex genoeg is, omdat ik bij het installeren van MySQL zei dat het een bepaald beleid voor wachtwoorden moest gebruiken.
Dat is geweldig! Nu is de gebruiker gemaakt en kunnen we met die gebruiker verbinding maken met MySQL. Vanaf de opdrachtregel kunt u afsluiten door QUIT
. te typen , en typen:
mysql -u test_user -p
Als ik nu een database probeer te maken, krijg ik de foutmelding ERROR 1044 (42000): Access denied for user 'test_user'@'localhost' to database 'testing'
:
Waarom? Omdat de gebruiker geen toestemming heeft om een nieuwe database aan te maken .
We zullen in een andere tutorial zien hoe je met machtigingen kunt werken.
Het is het vermelden waard de @'localhost'
string die we hebben gebruikt om de gebruiker te maken. Dit vertelt MySQL dat de gebruiker alleen verbinding kan maken vanaf localhost. Dat is prima bij het testen van dingen en wanneer een applicatie die verbinding maakt met MySQL op dezelfde computer draait waarop het DBMS draait.
Als dit niet waar is, moet u ofwel handmatig het IP-adres invoeren waarvan de gebruiker verbinding wil maken, of de %
gebruiken wildcard:
CREATE USER 'test_user'@'%' IDENTIFIED BY 'test_password12A';
Ik wil deze tutorial afsluiten door te laten zien hoe de gebruiker die we hebben gemaakt kan worden verwijderd:
DROP USER 'test_user'@'localhost';