Tutorial Belajar MySQL Part 34: Cara Menghapus Hak Akses User MySQL (REVOKE)

Posted on

Pada maintenance database, kadang kita perlu mengubah dan menghapus beberapa user. Pada panduan MySQL kali ini kita akan mempelajari query REVOKE yang digunakan bagi mencabut previlege (hak akses) dari user MySQL.

Hak akses yang diberikan ke seorang user, adakalanya perlu dilakukan perubahan, tergantung kondisi dan kebijakan pengguna. Bagi menghapus user, kita dapat menggunakan query DROP user, namun kadang kita perlu hanya menghapus hak aksesnya saja, tanpa menghapus user yang bersangkutan. Bagi hal ini MySQL menyediakan petunjuk REVOKE.


Cara Pemakaian Query REVOKE bagi Menghapus Hak Akses

Langkah pertama-tama sebelum membangun query REVOKE yakni mengetahui user siapa dan hak apa saja yang akan dihapus. Dari panduan MySQL: Jenis-jenis Hak Akses (Privileges) dalam MySQL , kita telah mempelajari bahwa setiap user dapat mempunyai hak akses yang berbeda-beda. Bagi melihat hak akses apa saja yang dimiliki oleh seorang user, dapat menggunakan query SHOW GRANTS FOR (kita telah mempelajarinya di panduan Cara Melihat Daftar User MySQL dan Hak Aksesnya)

Bagi panduan kali ini saya akan membangun user baru admin_data. User admin_data akan diberikan hak akses bagi query SELECT,INSERT,UPDATE, dan DELETE bagi seluruh tabel yang berada di pada database universitas. Berikut yakni query yang saya gunakan dengan user root:

Sekiranya sahabat telah mempelajari panduan sebelumnya, petunjuk query diatas dapat dengan gampang dimengerti. Di query pertama-tama, saya membangun user admin_data dengan petunjuk CREATE USER, lalu memberikan hak akses dengan query GRANT, dan memeriksa hak akses dengan query SHOW GRANTS FOR.

Setelah menjalankan petunjuk diatas, user admin_data mempunyai 4 jenis hak akses, yaitu SELECT,INSERT,UPDATE, dan DELETE. Query REVOKE dapat di bikin bagi menghapus seluruh atau diantara hak akses saja. Berikut yakni format mendasar penulisan query REVOKE:

  • Jenis_hak_akses yakni privileges yang akan dihapus dari user tersebut. Kita dapat membangun hak akses secara satu persatu bagi kebutuhan yang spesifik, atau mengisikan petunjuk ALL PRIVILEGES bagi menghapus seluruh hak akses.
  • kolom1,kolom2 yakni nama judul kolom yang hak aksesnya akan dicabut. Sekiranya tak diisi, karenanya dianggap query REVOKE akan menghapus di seluruh kolom.
  • nama_database yakni nama database yang ingin dihapuskan hak aksesnya. nama_database dapat ditulis dengan tanda bintang mencabut previlege (hak akses) dari user MySQL bagi merujuk kepada seluruh database.
  • nama_tabel yakni nama tabel yang ingin dihapuskan hak aksesnya. nama_tabel dapat ditulis dengan tanda bintang mencabut previlege (hak akses) dari user MySQL bagi merujuk kepada seluruh tabel.
  • nama_user yakni nama dari user yang akan dihapus hak aksesnya.
  • lokasi_user yakni tempat tinggal IP dari user yang akan dihapus hak aksesnya.

Selaku contoh, saya akan menghapus hak akses SELECT dari user admin_data:

Dari contoh query MySQL diatas, perta
ma-tama saya keluar dari user root dengan petunjuk exit;, dan masuk selaku admin_data. Berikutnya saya ingin menguji user admin_data bagi menampilkan isi tabel mahasiswa_ilkom, dan menjalankan pengecekan hak akses user tersebut.

Setelah memastikan hak akses admin_data,  saya kembali menggunakan user root dan menghapus hak akses SELECT dari admin_data dengan query REVOKE, dan kembali memeriksa hak aksesnya.

Bagi menguji bahwa user admin_data telah tak dapat melihat database universitas lagi, saya akan kembali masuk selaku user admin_data:

Di ketika menggunakan user admin_data, saya mencoba menjalankan query SELECT, dan seperti yang diinginkan, MySQL menolak bagi memperlihatkan isi tabel mahasiswa_ilkom karena hak akses bagi query SELECT telah dihapus.

Namun karena user admin_data masih mempunyai hak akses INSERT, UPDATE dan DELETE, di petunjuk terakhir saya mencoba menambahkan data baru kedalam tabel mahasiswa_ilkom, dan berhasil.

Bagi menghapus hak akses lainnya, sahabat tinggal membangun petunjuk REVOKE bagi masing-masing hak akses, atau menggunakan REVOKE ALL bagi menghapus seluruh hak akses.


Cara Pemakaian Query REVOKE ALL bagi Menghapus Seluruh Hak Akses

Sekiranya di penjelasan sebelumnya kita diberikan fleksibilitas bagi dapat memilih hak akses apa saja yang akan dihapus, namun selaku cara singkat, MySQL menyediakan query REVOKE ALL bagi mencabut seluruh hak akses.

Selaku lanjutan dari user admin_data, saya memutuskan bagi mencabut seluruh hak aksesnya kembali. Silahkan masuk selaku root, dan jalankan petunjuk berikut:

Di petunjuk pertama-tama, saya menggunakan query SHOW GRANTS FOR bagi melihat hak akses admin_data, lalu menggunakan query REVOKE ALL bagi menghapus seluruh hak aksesnya, dan memastikannya lagi dengan memeriksa query SHOW GRANTS FOR.


Dari panduan cara menghapus hak akses user MySQL dengan query REVOKE ini kita telah mempelajari cara menghapus dan mencabut hak akses dari user tertentu tanpa menghapus user tersebut, Pada panduan berikutnya kita akan mempelajari mengenai query GRANT OPTION, yaitu sebuah hak akses yang dapat digunakan bagi memberikan hak akses tersebut kepada user lainnya.

Pada panduan MySQL berikutnya, kita akan membahas Pengertian Fungsi Hashing dan cara kerja MySQL pada menyimpan password user.


Sumber https://www.duniailkom.com/