MySQL-da täze ulanyjy we grant rugsatlaryny nädip döretmeli


MySQL maglumatlary saklaýan we tertipleşdirýän we ulanyjylara ony almaga mümkinçilik berýän meşhur we giňden ulanylýan maglumatlar binýadyny dolandyrmak ulgamydyr. Ulanyjylara tablisalara we maglumat bazalaryna belli bir rugsat berýän köp sanly wariant bilen gelýär.

Bu gollanmada, täze ulanyjyny nädip döretmelidigini we MySQL maglumatlar bazasynda rugsatnamalary öwrenersiňiz.

MySQL-da täze ulanyjy nädip döretmeli

Täze ulanyjy döretmek üçin ilki MySQL gabygyna giriň.

$ sudo mysql -u root -p

MySQL maglumat bazasyny guranyňyzda we ENTER düwmesine basan parodyň yzyndaky sudo parolyny beriň. Ondan soň bu soragy alarsyňyz.

Täze ulanyjy döretmek üçin aşakda görkezilen sintaksisden peýdalanyň:

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

Mysal üçin, maglumat bazasynyň içinde “tecmint” atly täze ulanyjy döretmek üçin buýrugy çagyryň:

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

MySQL-y guran ulgamyňyza ýerli ulanyjy goşanyňyzda, ulanyjynyň öý eýesi IP adresi däl-de, ýerlihost hökmünde görkezilýär. “Localhost” açar söz “bu kompýutere” terjime edilýär we MySQL oňa özboluşly seredýär. Esasan, ýerlihost MysQL müşderisi tarapyndan ýerli gurlan MySQL maglumat bazasynyň serwerine birikmek üçin ulanylýar.

Tecmint ulanyjysynyň şu wagta çenli maglumat bazalary bilen aragatnaşyk saklamaga rugsady ýok. Aslynda ulanyjy hatda MySQL gabygyna-da girip bilmeýär.

Ulanyja tablisalary goşmak bilen ähli maglumat bazalaryna doly ygtyýar bermek üçin işlediň.

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

Aboveokardaky buýrukda, ýyldyzjyklar ulanyjynyň girip bilýän maglumatlar bazasyna we tablisasyna degişlidir. Ulanyja maglumat bazasyndaky ähli hukuklary berýär - okamak, ýazmak, redaktirlemek we ýerine ýetirmek, beýleki maglumatlar bazalarynda we tablisalarda ähli meseleleri ýerine ýetirmek.

Şu wagta çenli ulanyja maglumat bazasyna doly ygtyýar berdik. Bu MySQL düşünjelerini düşündirmekde amatly bolsa-da, maglumatlar bazalaryňyza howpsuzlyk howpy döredip bilýänligi üçin adatça maslahat berilmeýär. Haker ulanyjynyň parolyny tutsa näme bolup biljekdigini pikir ediň. Has dowam etdireris we indiki bölümde aýratyn rugsatlary nädip bermelidigini ara alyp maslahatlaşarys.

Ulanyja rugsatlary belläniňizden soň, üýtgeşmeleriň güýje girmegi üçin görkezilişi ýaly ähli artykmaçlyklary täzeden ýükläň.

MariaDB [none]> FLUSH PRIVILEGES

Dürli ulanyjy rugsatlaryny nädip bermeli

Ine, ulanyjylara berip biljek rugsatlaryňyzyň bir bölegi:

  • ALhli aýratynlyklar - Öň görşümiz ýaly, bu MySQL ulanyjysyna belli bir maglumat bazasyna doly ygtyýar berýär.
  • Dörediň - Ulanyjylara täze maglumat bazalaryny ýa-da tablisalary döretmäge mümkinçilik berýär.
  • DROP - Ulanyjylara maglumat bazalaryny ýa-da ulanyjylary pozmaga mümkinçilik berýär.
  • INSERT - Ulanyjylara tablisalara hatar goýmaga mümkinçilik berýär.
  • Öçürmek - Ulanyjylara tablisalardan hatarlary pozmaga mümkinçilik berýär.
  • SELECT - SELECT rugsady bilen ulanyjylar tablisanyň mazmunyny okap bilerler.
  • Täzelenme - Ulanyjylara tablisadaky hatarlary täzelemäge mümkinçilik berýär.
  • GRANT OPTION - Ulanyjylar beýleki ulanyjylaryň artykmaçlyklaryny berip ýa-da aýryp bilerler.

Ulanyjynyň belli bir rugsady bermek üçin sintaksis ulanyň:

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

Mundan başga-da, maglumatlar bazasyndaky ähli tablisalara görkezilişi ýaly ýekeje ýyldyz belgisi bilen rugsat berip bilersiňiz:

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

Mysal üçin, testdb maglumat bazasynyň ähli tablisalarynda “tecmint” ulanyjysyna SELECT rugsatlaryny bellemek üçin buýrugy işlediň.

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

Soňra üýtgeşmeleriň güýje girmegi üçin artykmaçlyklary ýuwuň.

MariaDB [none]> FLUSH PRIVILEGES;

Mundan başga-da, görkezilişi ýaly vergi bilen bölüp, bir gezekde birnäçe rugsady belläp bilersiňiz.

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

MySQL rugsatlaryny nädip ýatyrmaly

Ulanyjynyň rugsatlaryny ýatyrmak üçin sintaksis ulanyň:

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

Mysal üçin, “tecmint” ulanyjysyndan INSERT rugsatlaryny ýatyrmak üçin buýrugy işlediň.

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

Ulanyjynyň häzirki rugsatlaryna göz aýlamak üçin ýerine ýetiriň:

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

Aşakdaky çykyşdan, testdb maglumatlar bazasynda diňe SELECT we UPDATE hukuklaryny goýup, “tekmint” ulanyjysyndan INSERT rugsadynyň çykarylandygyny görüp bileris.

Täze ulanyjyny ulanyp, MySQL gabygyna girmegi barlamak üçin ilki çykyň.

MariaDB [none]> quit;

Soňra gaýtadan giriň.

$ sudo mysql -u tecmint -p

Ulanyjynyň parolyny beriň we gabyga girmek üçin ENTER basyň.

Ulanyjyny taşlamak üçin maglumat bazasyny pozanyňyzda bolşy ýaly DROP buýrugyny ulanyň.

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

Şeýle hem, MySQL bilen baglanyşykly aşakdaky makalalary okamak isläp bilersiňiz:

  • MySQL-daky umumy ýalňyşlyklary düzetmek üçin peýdaly maslahatlar
  • Mytop - Linux-da MySQL/MariaDB öndürijiligine gözegçilik etmek üçin peýdaly gural
  • Linux-da esasy MySQL/MariaDB portuny nädip üýtgetmeli
  • Linux-da MySQL ýa-da MariaDB kök parolyny nädip täzeden dikeltmeli

Şu wagta çenli MySQL maglumat bazasynyň serwerlerinde ulanyjy döredip, rugsatlary rahat belläp ýa-da ýatyryp bilersiňiz diýip umyt edýärin.