Cara Membuat Pengguna Baru dan Memberikan Izin di MySQL


MySQL adalah sistem manajemen basis data yang populer dan banyak digunakan untuk menyimpan dan mengatur data serta memungkinkan pengguna mengambilnya. Muncul dengan beragam pilihan yang memberikan pengguna izin tertentu ke tabel dan database.

Dalam panduan ini, Anda akan mempelajari cara membuat pengguna baru dan memberikan izin di database MySQL.

Cara Membuat Pengguna Baru di MySQL

Untuk membuat pengguna baru, pertama-tama masuk ke shell MySQL.

sudo mysql -u root -p

Berikan kata sandi sudo diikuti dengan kata sandi yang diberikan saat menyiapkan database MySQL dan tekan ENTER. Setelah itu, Anda akan mendapatkan prompt ini.

Untuk membuat pengguna baru, gunakan sintaks yang ditunjukkan di bawah ini:

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

Misalnya, untuk membuat pengguna baru bernama 'tecmint' dalam database, jalankan perintah:

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

Beberapa Hal yang Perlu Diingat

Saat menambahkan pengguna secara lokal, yaitu pada sistem yang Anda instal MySQL, host pengguna ditentukan sebagai localhost, dan bukan alamat IP. Kata kunci 'localhost' diterjemahkan menjadi 'komputer ini' dan MySQL memperlakukannya secara unik. Pada dasarnya, localhost digunakan oleh klien mysql untuk membuat koneksi ke server database MySQL yang diinstal secara lokal.

Sejauh ini, pengguna tecmint tidak memiliki izin apa pun untuk berinteraksi dengan database. Faktanya, pengguna bahkan tidak dapat mengakses shell MySQL.

Untuk memberi pengguna akses penuh ke semua database, termasuk tabel, jalankan.

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

Pada perintah di atas, tanda bintang masing-masing menunjuk ke database dan tabel yang dapat diakses pengguna. Ini memberi pengguna semua hak atas database – membaca, menulis, mengedit, dan mengeksekusi termasuk melakukan semua tugas di database dan tabel lain juga.

Sejauh ini, kami telah memberikan pengguna akses penuh ke database. Meskipun hal ini berguna dalam menjelaskan konsep MySQL, hal ini umumnya tidak disarankan karena dapat menimbulkan risiko keamanan pada database Anda. Bayangkan saja apa yang mungkin terjadi jika seorang peretas mendapatkan kata sandi pengguna. Kami akan melangkah lebih jauh dan mendiskusikan cara menetapkan izin khusus di bagian selanjutnya.

Setelah Anda selesai memberikan izin kepada pengguna, muat ulang semua hak istimewa seperti yang ditunjukkan agar perubahan diterapkan.

MariaDB [none]> FLUSH PRIVILEGES

Cara Memberikan Izin Pengguna yang Berbeda

Berikut rincian kemungkinan izin yang dapat Anda berikan kepada pengguna:

  • SEMUA HAK ISTIMEWA – Seperti yang terlihat sebelumnya, ini memberikan pengguna MySQL akses penuh ke database tertentu.
  • CREATE – Memungkinkan pengguna membuat database atau tabel baru.
  • DROP – Memungkinkan pengguna untuk menghapus database atau pengguna.
  • INSERT – Memungkinkan pengguna menyisipkan baris dalam tabel.
  • DELETE – Memungkinkan pengguna menghapus baris dari tabel.
  • PILIH – dengan izin 'PILIH', pengguna dapat membaca konten tabel.
  • UPDATE – Memungkinkan pengguna memperbarui baris dalam tabel.
  • OPSI PEMBERIAN – Pengguna dapat memberikan atau menghapus hak istimewa pengguna lain.

Untuk memberikan izin pengguna tertentu, gunakan sintaksis:

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

Selain itu, Anda dapat menetapkan izin ke semua tabel dalam database dengan satu simbol asterisk seperti yang ditunjukkan:

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

Misalnya, untuk menetapkan izin SELECT kepada pengguna 'tecmint' di semua tabel database testdb, jalankan perintah.

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

Kemudian hapus hak istimewa agar perubahan diterapkan.

MariaDB [none]> FLUSH PRIVILEGES;

Selain itu, Anda dapat menetapkan beberapa izin sekaligus dengan memisahkannya menggunakan koma seperti yang ditunjukkan.

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

Cara Mencabut Izin MySQL

Untuk mencabut izin dari pengguna, gunakan sintaks:

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

Misalnya, untuk mencabut izin INSERT dari pengguna 'tecmint', jalankan perintah.

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

Untuk mengintip izin pengguna saat ini, jalankan:

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

Dari keluaran di bawah, kita dapat melihat bahwa izin INSERT telah dihapus dari pengguna 'tecmint' yang hanya menyisakan SELECT dan UPDATE hak pada database testdb.

Untuk menguji login ke shell MySQL menggunakan pengguna baru, logout terlebih dahulu.

MariaDB [none]> quit;

Kemudian login kembali.

sudo mysql -u tecmint -p

Berikan sandi pengguna dan tekan ENTER untuk mengakses shell.

Untuk menghapus pengguna, gunakan perintah DROP, seperti yang Anda lakukan saat menghapus database.

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

Anda mungkin juga ingin membaca artikel terkait MySQL berikut:

  • Tip Berguna untuk Memecahkan Masalah Kesalahan Umum di MySQL
  • Mytop – Alat Berguna untuk Memantau Kinerja MySQL/MariaDB di Linux
  • Cara Mengubah Port MySQL/MariaDB Default di Linux
  • Cara Reset Kata Sandi Root MySQL atau MariaDB di Linux
Kesimpulan

Mudah-mudahan, sekarang, Anda dapat membuat pengguna di server database MySQL Anda dan dengan mudah menetapkan atau mencabut izin.