Веднага след като инсталирате MySQL, ще имате root
наличен потребител.
Това е потребителят, който може да използвате, за да опитате да видите дали MySQL работи, но не трябва да е потребителят за други видове употреби.
Защо? Защото е твърде мощен .
С голяма сила идва голяма отговорност (каза чичото на Спайдърмен). И по-специално голяма опасност, ако правите грешки.
Вместо това трябва да създадете ad-hoc потребители, които имат само разрешения да изпълняват работата си и не повече. Същото за използване на Linux или която и да е Unix система, например:не искате да използвате root
потребител, но вашият собствен потребителски акаунт.
За да създадете нов потребител, свържете се с MySQL с помощта на root
потребител:
mysql -u root -p
след това използвайте командата
CREATE USER '<username>'@'localhost' IDENTIFIED BY '<password>';
Например, за да създадете потребител с име test_user
с парола test_password12A
изпълнете командата:
CREATE USER 'test_user'@'localhost' IDENTIFIED BY 'test_password12A';
Командата трябва да върне ред, който казва Query OK, 0 rows affected (X.XX sec)
:
Ако сте използвали невалидна парола, системата ще ви каже нещо като ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
. В този случай грешката казва, че паролата не е достатъчно сложна, защото когато инсталирах MySQL, му казах да използва определена политика за паролите.
Това е страхотно! Сега потребителят е създаден и можем да се свържем с помощта на този потребител към MySQL. От командния ред можете да излезете, като напишете QUIT
, и напишете:
mysql -u test_user -p
Сега, ако се опитам да създам база данни, ще получа грешка, която казва ERROR 1044 (42000): Access denied for user 'test_user'@'localhost' to database 'testing'
:
Защо? Тъй като потребителят няма разрешение да създаде нова база данни .
Ще видим как да работим с разрешения в друг урок.
Струва си да споменем @'localhost'
низ, който използвахме, за да създадем потребителя. Това казва на MySQL, че потребителят може да се свърже само от localhost. Което е добре, когато тествате нещата и когато всяко приложение, което ще се свърже с MySQL, се изпълнява на същия компютър, който изпълнява СУБД.
Когато това не е вярно, трябва или да въведете ръчно IP адреса, от който потребителят ще се свърже, или да използвате %
заместващ знак:
CREATE USER 'test_user'@'%' IDENTIFIED BY 'test_password12A';
Искам да затворя този урок, като покажа как да премахнем потребителя, който създадохме:
DROP USER 'test_user'@'localhost';